libdrmconf 0.13.3
A library to program DMR radios.
Loading...
Searching...
No Matches
dmr6x2uv_codeplug.hh
1#ifndef DMR6X2UVCODEPLUG_HH
2#define DMR6X2UVCODEPLUG_HH
3
4#include "d878uv_codeplug.hh"
5#include "ranges.hh"
6
7
15{
16 Q_OBJECT
17
18protected:
20 struct Color {
21 public:
23 static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
25 static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
26
27 protected:
29 typedef enum {
30 Orange=0, Red=1, Yellow=2, Green=3, Turquoise=4, Blue=5, White = 6, Black = 7
31 } CodedColor;
32 };
33
36 public:
38 static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
40 static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
41
42 protected:
44 typedef enum {
45 Black = 0, Blue = 1
46 } CodedColor;
47 };
48
50 struct FontColor {
51 public:
53 static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
55 static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
56
57 protected:
59 typedef enum {
60 White = 0, Black = 1, Orange=2, Red=3, Yellow=4, Green=5, Turquoise=6, Blue=7
61 } CodedColor;
62 };
63
64public:
73 {
74 protected:
76 struct KeyFunction {
77 public:
82
83 protected:
85 typedef enum {
86 Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
87 Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
88 Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
89 Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
90 HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
91 WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
92 PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
93 ChannelType = 0x22, SimplexRepeater = 0x23, Ranging = 0x24, ChannelRanging = 0x25,
94 MaxVolume = 0x26, Slot = 0x27, Squelch = 0x28, Roaming = 0x29, Zone = 0x2a, RoamingSet = 0x2b,
95 Mute = 0x02c, CtcssDcsSet=0x2d, APRSType = 0x2e, APRSSet = 0x2f, DIMShut = 0x30,
96 GPSToggle = 0x31, SatPredict = 0x32
98 };
99
111
114 DTMF_DUR_50ms = 0, DTMF_DUR_100ms = 1, DTMF_DUR_200ms = 2, DTMF_DUR_300ms = 3, DTMF_DUR_500ms = 4
115 };
116
118 enum class TBSTFrequency {
119 Hz1000 = 0, Hz1450 = 1, Hz1750 = 2, Hz2100 = 3
120 };
121
123 enum class STEFrequency {
124 Off = 0, Hz55_2 = 1, Hz259_2 = 2
125 };
126
128 enum class RepeaterTimeSlot {
129 TS1 = 0, TS2 = 1, Channel = 2
130 };
131
132 protected:
134 GeneralSettingsElement(uint8_t *ptr, unsigned size);
135
136 public:
138 explicit GeneralSettingsElement(uint8_t *ptr);
139
141 static constexpr unsigned int size() { return 0x00e0; }
142
143 bool idleChannelTone() const override;
144 void enableIdleChannelTone(bool enable) override;
145
147 virtual unsigned transmitTimeout() const;
149 virtual void setTransmitTimeout(unsigned tot);
150
152 virtual AnytoneDisplaySettingsExtension::Language language() const;
154 virtual void setLanguage(AnytoneDisplaySettingsExtension::Language lang);
155
157 virtual Frequency vfoFrequencyStep() const;
159 virtual void setVFOFrequencyStep(Frequency kHz);
160
181
182 bool vfoModeA() const override;
183 void enableVFOModeA(bool enable) override;
184 bool vfoModeB() const override;
185 void enableVFOModeB(bool enable) override;
186
193 virtual double steFrequency() const;
196 virtual void setSTEFrequency(double freq);
197
199 virtual Interval groupCallHangTime() const;
201 virtual void setGroupCallHangTime(Interval sec);
203 virtual Interval privateCallHangTime() const;
205 virtual void setPrivateCallHangTime(Interval sec);
206
208 virtual Interval preWaveDelay() const;
210 virtual void setPreWaveDelay(Interval ms);
212 virtual Interval wakeHeadPeriod() const;
214 virtual void setWakeHeadPeriod(Interval ms);
215
217 virtual unsigned wfmChannelIndex() const;
219 virtual void setWFMChannelIndex(unsigned idx);
221 virtual bool wfmVFOEnabled() const;
223 virtual void enableWFMVFO(bool enable);
224
226 virtual unsigned dtmfToneDuration() const;
228 virtual void setDTMFToneDuration(unsigned ms);
229
231 virtual bool manDown() const;
233 virtual void enableManDown(bool enable);
234
236 virtual bool wfmMonitor() const;
238 virtual void enableWFMMonitor(bool enable);
239
241 virtual Frequency tbstFrequency() const;
243 virtual void setTBSTFrequency(Frequency freq);
244
246 virtual bool proMode() const;
248 virtual void enableProMode(bool enable);
249
250 bool keyToneEnabled() const override;
251 void enableKeyTone(bool enable) override;
252
254 virtual bool filterOwnID() const;
256 virtual void enableFilterOwnID(bool enable);
257
259 virtual bool remoteStunKill() const;
261 virtual void enableRemoteStunKill(bool enable);
263 virtual bool remoteMonitor() const;
265 virtual void enableRemoteMonitor(bool enable);
266
268 virtual bool selectTXContactEnabled() const;
270 virtual void enableSelectTXContact(bool enable);
271
277 virtual bool monitorColorCodeMatch() const;
279 virtual void enableMonitorColorCodeMatch(bool enable);
281 virtual bool monitorIDMatch() const;
283 virtual void enableMonitorIDMatch(bool enable);
285 virtual bool monitorTimeSlotHold() const;
287 virtual void enableMonitorTimeSlotHold(bool enable);
288
290 virtual Interval manDownDelay() const;
292 virtual void setManDownDelay(Interval sec);
293
295 virtual unsigned fmCallHold() const;
297 virtual void setFMCallHold(unsigned sec);
298
300 virtual bool gpsMessageEnabled() const;
302 virtual void enableGPSMessage(bool enable);
303
305 virtual bool maintainCallChannel() const;
307 virtual void enableMaintainCallChannel(bool enable);
308
310 virtual unsigned priorityZoneAIndex() const;
312 virtual void setPriorityZoneAIndex(unsigned idx);
314 virtual unsigned priorityZoneBIndex() const;
316 virtual void setPriorityZoneBIndex(unsigned idx);
317
319 virtual bool smsConfirmEnabled() const;
321 virtual void enableSMSConfirm(bool enable);
322
324 virtual bool simplexRepeaterEnabled() const;
326 virtual void enableSimplexRepeater(bool enable);
327
328 Interval gpsUpdatePeriod() const override;
329 void setGPSUpdatePeriod(Interval sec) override;
330
333 virtual bool monitorSimplexRepeaterEnabled() const;
335 virtual void enableMonitorSimplexRepeater(bool enable);
336
337 bool showCurrentContact() const override;
338 void enableShowCurrentContact(bool enable) override;
339
340 bool keyToneLevelAdjustable() const override;
341 unsigned keyToneLevel() const override;
342 void setKeyToneLevel(unsigned level) override;
343 void setKeyToneLevelAdjustable() override;
344
345 bool knobLock() const override;
346 void enableKnobLock(bool enable) override;
347 bool keypadLock() const override;
348 void enableKeypadLock(bool enable) override;
349 bool sidekeysLock() const override;
350 void enableSidekeysLock(bool enable) override;
351 bool keyLockForced() const override;
352 void enableKeyLockForced(bool enable) override;
353
358
359 bool showLastHeard() const override;
360 void enableShowLastHeard(bool enable) override;
361
363 virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const;
365 virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt);
366
367 bool gpsUnitsImperial() const override;
368 void enableGPSUnitsImperial(bool enable) override;
369
370 Frequency autoRepeaterMinFrequencyVHF() const override;
372 Frequency autoRepeaterMaxFrequencyVHF() const override;
374 Frequency autoRepeaterMinFrequencyUHF() const override;
376 Frequency autoRepeaterMaxFrequencyUHF() const override;
378
381
383 virtual bool fmSendIDAndContact() const;
385 virtual void enableFMSendIDAndContact(bool enable);
386
387 bool defaultChannel() const override;
388 void enableDefaultChannel(bool enable) override;
389 unsigned defaultZoneIndexA() const override;
390 void setDefaultZoneIndexA(unsigned idx) override;
391 unsigned defaultZoneIndexB() const override;
392 void setDefaultZoneIndexB(unsigned idx) override;
393 bool defaultChannelAIsVFO() const override;
394 unsigned defaultChannelAIndex() const override;
395 void setDefaultChannelAIndex(unsigned idx) override;
396 void setDefaultChannelAToVFO() override;
397 bool defaultChannelBIsVFO() const override;
398 unsigned defaultChannelBIndex() const override;
399 void setDefaultChannelBIndex(unsigned idx) override;
400 void setDefaultChannelBToVFO() override;
401
402 bool keepLastCaller() const override;
403 void enableKeepLastCaller(bool enable) override;
404
406 virtual Interval rxBacklightDuration() const;
408 virtual void setRXBacklightDuration(Interval sec);
409
411 virtual AnytoneDisplaySettingsExtension::Color standbyBackgroundColor() const;
413 virtual void setStandbyBackgroundColor(AnytoneDisplaySettingsExtension::Color color);
414
416 virtual unsigned int manualDialedGroupCallHangTime() const;
418 virtual void setManualDialedGroupCallHangTime(unsigned int dur);
420 virtual unsigned int manualDialedPrivateCallHangTime() const;
422 virtual void setManualDialedPrivateCallHangTime(unsigned int dur);
423
424
425 bool fromConfig(const Flags &flags, Context &ctx) override;
426 bool updateConfig(Context &ctx) override;
427
428 protected:
432 static constexpr unsigned int idleChannelTone() { return 0x0000; }
433 static constexpr unsigned int transmitTimeout() { return 0x0004; }
434 static constexpr unsigned int language() { return 0x0005; }
435 static constexpr unsigned int vfoFrequencyStep() { return 0x0008; }
436 static constexpr unsigned int vfoModeB() { return 0x0015; }
437 static constexpr unsigned int vfoModeA() { return 0x0016; }
438 static constexpr unsigned int steType() { return 0x0017; }
439 static constexpr unsigned int steFrequency() { return 0x0018; }
440 static constexpr unsigned int groupCallHangTime() { return 0x0019; }
441 static constexpr unsigned int privateCallHangTime() { return 0x001a; }
442 static constexpr unsigned int preWaveDelay() { return 0x001b; }
443 static constexpr unsigned int wakeHeadPeriod() { return 0x001c; }
444 static constexpr unsigned int wfmChannelIndex() { return 0x001d; }
445 static constexpr unsigned int wfmVFOEnabled() { return 0x001e; }
446 static constexpr unsigned int dtmfToneDuration() { return 0x0023; }
447 static constexpr unsigned int manDown() { return 0x0024; }
448 static constexpr unsigned int wfmMonitor() { return 0x002b; }
449 static constexpr unsigned int tbstFrequency() { return 0x002e; }
450 static constexpr unsigned int proMode() { return 0x0034; }
451 static constexpr unsigned int enableKeyTone() { return 0x0036; }
452 static constexpr unsigned int filterOwnID() { return 0x0038; }
453 static constexpr unsigned int remoteStunKill() { return 0x003c; }
454 static constexpr unsigned int remoteMonitor() { return 0x003e; }
455 static constexpr unsigned int selectTXContact() { return 0x0040; }
456 static constexpr unsigned int monSlotMatch() { return 0x0049; }
457 static constexpr unsigned int monColorCodeMatch() { return 0x004a; }
458 static constexpr unsigned int monIDMatch() { return 0x004b; }
459 static constexpr unsigned int monTimeSlotHold() { return 0x004c; }
460 static constexpr unsigned int manDownDelay() { return 0x004f; }
461 static constexpr unsigned int fmCallHold() { return 0x0050; }
462 static constexpr unsigned int enableGPSMessage() { return 0x0053; }
463 static constexpr unsigned int maintainCallChannel() { return 0x006e; }
464 static constexpr unsigned int priorityZoneA() { return 0x006f; }
465 static constexpr unsigned int priorityZoneB() { return 0x0070; }
466 static constexpr unsigned int smsConfirm() { return 0x0071; }
467 static constexpr unsigned int simplexRepEnable() { return 0x00b1; }
468 static constexpr unsigned int gpsUpdatePeriod() { return 0x00b2; }
469 static constexpr unsigned int simplxRepSpeaker() { return 0x00b3; }
470 static constexpr unsigned int showContact() { return 0x00b4; }
471 static constexpr unsigned int keyToneLevel() { return 0x00b5; }
472 static constexpr Bit knobLock() { return {0x00b6, 0}; }
473 static constexpr Bit keypadLock() { return {0x00b6, 1}; }
474 static constexpr Bit sideKeyLock() { return {0x00b6, 3}; }
475 static constexpr Bit forceKeyLock() { return {0x00b6, 4}; }
476 static constexpr unsigned int simplxRepSlot() { return 0x00b7; }
477 static constexpr unsigned int showLastHeard() { return 0x00b8; }
478 static constexpr unsigned int smsFormat() { return 0x00b9; }
479 static constexpr unsigned int gpsUnits() { return 0x00ba; }
480 static constexpr unsigned int autoRepMinVHF() { return 0x00bc; }
481 static constexpr unsigned int autoRepMaxVHF() { return 0x00c0; }
482 static constexpr unsigned int autoRepMinUHF() { return 0x00c4; }
483 static constexpr unsigned int autoRepMaxUHF() { return 0x00c8; }
484 static constexpr unsigned int autoRepeaterDirB() { return 0x00cc; }
485 static constexpr unsigned int fmSendIDAndContact() { return 0x00cd; }
486 static constexpr unsigned int defaultChannels() { return 0x00ce; }
487 static constexpr unsigned int defaultZoneA() { return 0x00cf; }
488 static constexpr unsigned int defaultZoneB() { return 0x00d0; }
489 static constexpr unsigned int defaultChannelA() { return 0x00d1; }
490 static constexpr unsigned int defaultChannelB() { return 0x00d2; }
491 static constexpr unsigned int keepLastCaller() { return 0x00d3; }
492 static constexpr unsigned int rxBacklightDuration() { return 0x00d4; }
493 static constexpr unsigned int standbyBackground() { return 0x00d5; }
494 static constexpr unsigned int manGrpCallHangTime() { return 0x00d6; }
495 static constexpr unsigned int manPrvCallHangTime() { return 0x00d7; }
497 };
498
499 };
500
506 {
507 protected:
509 ExtendedSettingsElement(uint8_t *ptr, unsigned size);
510
511 public:
513 explicit ExtendedSettingsElement(uint8_t *ptr);
514
516 static constexpr unsigned int size() { return 0x0030; }
517
519 void clear();
520
522 virtual bool sendTalkerAlias() const;
524 virtual void enableSendTalkerAlias(bool enable);
525
527 virtual AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const;
529 virtual void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource mode);
530
532 virtual AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const;
534 virtual void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding);
535
537 virtual AnytoneDisplaySettingsExtension::Color fontColor() const;
539 virtual void setFontColor(AnytoneDisplaySettingsExtension::Color color);
540
542 virtual bool customChannelBackgroundEnabled() const;
544 virtual void enableCustomChannelBackground(bool enable);
545
547 virtual bool autoRoamingEnabled() const;
549 virtual void enableAutoRoaming(bool enable);
550
552 virtual bool repeaterRangeCheckEnabled() const;
554 virtual void enableRepeaterRangeCheck(bool enable);
556 virtual unsigned int repeaterCheckNumNotifications() const;
558 virtual void setRepeaterCheckNumNotifications(unsigned int n);
560 virtual Interval repeaterRangeCheckInterval() const;
562 virtual void setRepeaterRangeCheckInterval(Interval intv);
568 virtual unsigned int repeaterRangeCheckCount() const;
570 virtual void setRepeaterRangeCheckCount(unsigned int n);
571
573 virtual unsigned int defaultRoamingZoneIndex() const;
575 virtual void setDefaultRoamingZoneIndex(unsigned int index);
581 virtual Interval autoRoamPeriod() const;
583 virtual void setAutoRoamPeriod(Interval minutes);
585 virtual Interval autoRoamDelay() const;
587 virtual void setAutoRoamDelay(Interval sec);
592
594 virtual Interval muteTimer() const;
596 virtual void setMuteTimer(Interval minutes);
597
599 virtual AnytoneDMRSettingsExtension::EncryptionType encryptionType() const;
601 virtual void setEncryptionType(AnytoneDMRSettingsExtension::EncryptionType type);
602
603 AnytoneDisplaySettingsExtension::Color zoneANameColor() const;
604 void setZoneANameColor(AnytoneDisplaySettingsExtension::Color color);
605 AnytoneDisplaySettingsExtension::Color zoneBNameColor() const;
606 void setZoneBNameColor(AnytoneDisplaySettingsExtension::Color color);
608 virtual AnytoneDisplaySettingsExtension::Color channelANameColor() const;
610 virtual void setChannelANameColor(AnytoneDisplaySettingsExtension::Color color);
611 AnytoneDisplaySettingsExtension::Color channelBNameColor() const;
612 void setChannelBNameColor(AnytoneDisplaySettingsExtension::Color color);
613
614 bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
615 bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack());
616 bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack());
617
618 public:
620 struct Limit {
622 static constexpr IntRange repRangeReminder() { return {1, 10}; }
628 static constexpr IntRange repeaterReconnections() { return {3,5}; }
634 static constexpr TimeRange autoRoamDelay() {
636 }
638 static constexpr TimeRange muteTimer() {
640 }
641 };
642
643 protected:
645 struct Offset {
647 static constexpr unsigned int sendTalkerAlias() { return 0x0000; }
648 static constexpr unsigned int talkerAliasDisplay() { return 0x0001; }
649 static constexpr unsigned int talkerAliasEncoding() { return 0x0002; }
650 static constexpr unsigned int fontColor() { return 0x0003; }
651 static constexpr unsigned int customChannelBackground() { return 0x0004; }
652 static constexpr unsigned int defaultRoamingZone() { return 0x0005; }
653 static constexpr unsigned int roaming() { return 0x0006; }
654 static constexpr unsigned int repRangeCheck() { return 0x0007; }
655 static constexpr unsigned int repRangeAlert() { return 0x0008; }
656 static constexpr unsigned int repRangeReminder() { return 0x0009; }
657 static constexpr unsigned int rangeCheckInterval() { return 0x000a; }
658 static constexpr unsigned int rangeCheckCount() { return 0x000b; }
659 static constexpr unsigned int roamStartCondition() { return 0x000c; }
660 static constexpr unsigned int autoRoamPeriod() { return 0x000d; }
661 static constexpr unsigned int autoRoamDelay() { return 0x000e; }
662 static constexpr unsigned int roamReturnCondition() { return 0x000f; }
663 static constexpr unsigned int muteDelay() { return 0x0010; }
664 static constexpr unsigned int encryptionType() { return 0x0011; }
665 static constexpr unsigned int zoneANameColor() { return 0x0012; }
666 static constexpr unsigned int zoneBNameColor() { return 0x0013; }
667 static constexpr unsigned int channelANameColor() { return 0x0014; }
668 static constexpr unsigned int channelBNameColor() { return 0x0015; }
670 };
671 };
672
680 {
681 public:
683 enum class FMAPRSPTTMode {
684 Off = 0, Start = 1, End = 2
685 };
686
688 enum class APRSType{
689 Off = 0, FM = 1, DMR = 2
690 };
691
693 enum class DMREncryptionType {
694 Basic = 0, Enhanced = 1
695 };
696
697 protected:
699 ChannelElement(uint8_t *ptr, unsigned size);
700
701 public:
703 ChannelElement(uint8_t *ptr);
704
706 bool hasAESEncryptionKeyIndex() const;
709 unsigned int aesEncryptionKeyIndex() const;
711 void setAESEncryptionKeyIndex(unsigned int index);
714
719
721 bool hasDMREncryptionKeyIndex() const;
724 unsigned int dmrEncryptionKeyIndex() const;
726 void setDMREncryptionKeyIndex(unsigned int index);
729
731 bool hasScanListIndex() const;
733 unsigned scanListIndex() const;
735 void setScanListIndex(unsigned idx);
737 void clearScanListIndex();
738
740 virtual bool hasScanListIndex(unsigned int n) const;
742 virtual unsigned scanListIndex(unsigned int n) const;
744 virtual void setScanListIndex(unsigned int n, unsigned idx);
746 virtual void clearScanListIndex(unsigned int n);
747
749 virtual bool roamingEnabled() const;
751 virtual void enableRoaming(bool enable);
752
754 virtual bool ranging() const;
756 virtual void enableRanging(bool enable);
757
759 virtual unsigned int dmrAPRSChannelIndex() const;
761 virtual void setDMRAPRSChannelIndex(unsigned int idx);
762
764 virtual bool dmrAPRSRXEnabled() const;
766 virtual void enableDMRARPSRX(bool enable);
767
769 virtual bool dmrAPRSPTTEnabled() const;
771 virtual void enableDMRAPRSPTT(bool enable);
772
774 virtual FMAPRSPTTMode fmAPRSPTTMode() const;
776 virtual void setFMAPRSPTTMode(FMAPRSPTTMode mode);
777
779 virtual APRSType aprsType() const;
781 virtual void setAPRSType(APRSType aprstype);
782
783 bool linkChannelObj(Channel *c, Context &ctx) const;
784 bool fromChannelObj(const Channel *c, Context &ctx);
785
786public:
788 struct Limit {
790 static constexpr unsigned int scanListIndices() { return 8; }
791 };
792
793protected:
796 static constexpr unsigned int aesEncryptionKeyIndex() { return 0x0013; }
797 static constexpr Bit roaming() { return {0x001b, 2}; }
798 static constexpr Bit ranging() { return {0x001b, 0}; }
799 static constexpr Bit dmrEncryptionType() { return {0x0021, 6}; }
800 static constexpr unsigned int dmrEncryptionKeyIndex() { return 0x0022; }
801 static constexpr unsigned int scanListIndices() { return 0x0036; }
802 static constexpr unsigned int betweenScanListIndices() { return 0x0001; }
803 static constexpr unsigned int dmrAPRSChannelIndex() { return 0x003e; }
804 static constexpr Bit dmrAPRSRXEnable() { return {0x003f, 5}; }
805 static constexpr Bit dmrAPRSPTTEnable() { return {0x003f, 4}; }
806 static constexpr Bit fmAPRSPTTMode() { return {0x003f, 2}; }
807 static constexpr Bit aprsType() { return {0x003f, 0}; }
808 };
810 };
811
819 {
820 protected:
822 ChannelExtensionElement(uint8_t *ptr, size_t size);
823
824 public:
826 ChannelExtensionElement(uint8_t *ptr);
827
829 static constexpr unsigned int size() { return ChannelElement::size(); }
830
832 void clear();
833
835 virtual bool hasARC4KeyIndex() const;
837 virtual unsigned int arc4KeyIndex() const;
839 virtual void setARC4KeyIndex(unsigned int idx);
841 virtual void clearARC4KeyIndex();
842
844 virtual bool linkChannelObj(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const;
846 virtual bool fromChannelObj(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack());
847
848 protected:
850 struct Offset: public Element::Offset {
852 static constexpr unsigned int arc4KeyIndex() { return 0x0000; }
854 };
855 };
856
863 {
864 protected:
866 APRSSettingsElement(uint8_t *ptr, unsigned size);
867
869 enum class SignalingType {
870 Off=0, CTCSS=1, DCS=2
871 };
872
873 public:
875 explicit APRSSettingsElement(uint8_t *ptr);
876
878 static constexpr unsigned int size() { return 0x00a0; }
879
881 void clear();
882 bool isValid() const;
883
885 virtual Frequency fmFrequency() const;
887 virtual void setFMFrequency(Frequency f);
888
890 virtual Interval fmTXDelay() const;
892 virtual void setFMTXDelay(const Interval intv);
893
895 virtual SelectiveCall txTone() const;
897 virtual void setTXTone(const SelectiveCall &code);
898
900 virtual Interval manualTXInterval() const;
902 virtual void setManualTXInterval(Interval sec);
903
905 virtual bool autoTX() const;
907 virtual Interval autoTXInterval() const;
909 virtual void setAutoTXInterval(Interval sec);
911 virtual void disableAutoTX();
912
914 virtual bool fixedLocationEnabled() const;
916 virtual QGeoCoordinate fixedLocation() const;
918 virtual void setFixedLocation(QGeoCoordinate &loc);
920 virtual void disableFixedLocation();
921
923 virtual QString destination() const;
925 virtual unsigned destinationSSID() const;
927 virtual void setDestination(const QString &call, unsigned ssid);
929 virtual QString source() const;
931 virtual unsigned sourceSSID() const;
933 virtual void setSource(const QString &call, unsigned ssid);
934
936 virtual QString path() const;
938 virtual void setPath(const QString &path);
939
941 virtual APRSSystem::Icon icon() const;
943 virtual void setIcon(APRSSystem::Icon icon);
944
946 virtual Channel::Power power() const;
948 virtual void setPower(Channel::Power power);
949
951 virtual Interval fmPreWaveDelay() const;
953 virtual void setFMPreWaveDelay(Interval ms);
954
956 virtual bool dmrChannelIsSelected(unsigned n) const;
958 virtual unsigned dmrChannelIndex(unsigned n) const;
960 virtual void setDMRChannelIndex(unsigned n, unsigned idx);
962 virtual void setDMRChannelSelected(unsigned n);
963
965 virtual unsigned dmrDestination(unsigned n) const;
967 virtual void setDMRDestination(unsigned n, unsigned idx);
968
970 virtual DMRContact::Type dmrCallType(unsigned n) const;
972 virtual void setDMRCallType(unsigned n, DMRContact::Type type);
973
975 virtual bool dmrTimeSlotOverride(unsigned n);
977 virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const;
979 virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts);
981 virtual void clearDMRTimeSlotOverride(unsigned n);
982
984 virtual bool dmrRoaming() const;
986 virtual void enableDMRRoaming(bool enable);
987
989 virtual Interval dmrPreWaveDelay() const;
991 virtual void setDMRPreWaveDelay(Interval ms);
992
994 virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx,
995 const ErrorStack &err=ErrorStack());
997 virtual APRSSystem *toFMAPRSSystem();
1000 virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx);
1001
1003 virtual bool fromDMRAPRSSystems(Context &ctx);
1005 virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx);
1007 virtual GPSSystem *toDMRAPRSSystemObj(int idx) const;
1009 virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const;
1010
1011 public:
1013 struct Limit {
1015 static constexpr unsigned int callLength() { return 0x0006; }
1017 static constexpr unsigned int pathLength() { return 0x0020; }
1019 static constexpr unsigned int dmrSystems() { return 0x0008; }
1020 };
1021
1022 protected:
1024 struct Offset {
1026 static constexpr unsigned int fmFrequency() { return 0x0001; }
1027 static constexpr unsigned int fmTXDelay() { return 0x0005; }
1028 static constexpr unsigned int fmSigType() { return 0x0006; }
1029 static constexpr unsigned int fmCTCSS() { return 0x0007; }
1030 static constexpr unsigned int fmDCS() { return 0x0008; }
1031 static constexpr unsigned int manualTXInterval() { return 0x000a; }
1032 static constexpr unsigned int autoTXInterval() { return 0x000b; }
1033 static constexpr unsigned int fmTXMonitor() { return 0x000c; }
1034 static constexpr unsigned int fixedLocation() { return 0x000d; }
1035 static constexpr unsigned int fixedLatDeg() { return 0x000e; }
1036 static constexpr unsigned int fixedLatMin() { return 0x000f; }
1037 static constexpr unsigned int fixedLatSec() { return 0x0010; }
1038 static constexpr unsigned int fixedLatSouth() { return 0x0011; }
1039 static constexpr unsigned int fixedLonDeg() { return 0x0012; }
1040 static constexpr unsigned int fixedLonMin() { return 0x0013; }
1041 static constexpr unsigned int fixedLonSec() { return 0x0014; }
1042 static constexpr unsigned int fixedLonWest() { return 0x0015; }
1043 static constexpr unsigned int destinationCall() { return 0x0016; }
1044 static constexpr unsigned int destinationSSID() { return 0x001c; }
1045 static constexpr unsigned int sourceCall() { return 0x001d; }
1046 static constexpr unsigned int sourceSSID() { return 0x0023; }
1047 static constexpr unsigned int path() { return 0x0024; }
1048 static constexpr unsigned int symbolTable() { return 0x0039; }
1049 static constexpr unsigned int symbol() { return 0x003a; }
1050 static constexpr unsigned int fmPower() { return 0x003b; }
1051 static constexpr unsigned int fmPrewaveDelay() { return 0x003c; }
1052 static constexpr unsigned int dmrChannelIndices() { return 0x0040; }
1053 static constexpr unsigned int betweenDMRChannelIndices() { return 0x0002; }
1054 static constexpr unsigned int dmrDestinations() { return 0x0050; }
1055 static constexpr unsigned int betweenDMRDestinations() { return 0x0004; }
1056 static constexpr unsigned int dmrCallTypes() { return 0x0070; }
1057 static constexpr unsigned int betweenDMRCallTypes() { return 0x0001; }
1058 static constexpr unsigned int roamingSupport() { return 0x0078; }
1059 static constexpr unsigned int dmrTimeSlots() { return 0x0079; }
1060 static constexpr unsigned int betweenDMRTimeSlots() { return 0x0001; }
1061 static constexpr unsigned int dmrPrewaveDelay() { return 0x0081; }
1063 };
1064 };
1065
1074
1079
1080public:
1082 explicit DMR6X2UVCodeplug(const QString &label, QObject *parent=nullptr);
1083
1084public:
1086 explicit DMR6X2UVCodeplug(QObject *parent=nullptr);
1087
1088 Config *preprocess(Config *config, const ErrorStack &err) const;
1089
1090protected:
1091 bool allocateBitmaps();
1092 void setBitmaps(Context &ctx);
1093 void allocateForDecoding();
1094 void allocateForEncoding();
1095
1096 bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1097 bool createElements(Context &ctx, const ErrorStack &err=ErrorStack());
1098 bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
1099
1101 bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1102 bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1103 bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1104
1105 void allocateChannels();
1106 bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1107 bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1108 bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1109
1110 void allocateGPSSystems();
1111 bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1112 bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1113 bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1114
1116 virtual void allocateRoaming();
1118 virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1120 virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1122 virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1123
1125 virtual void allocateAESKeys();
1127 virtual bool encodeAESKeys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1129 virtual bool createAESKeys(Context &ctx, const ErrorStack &err=ErrorStack());
1130
1132 virtual void allocateARC4Keys();
1134 virtual bool encodeARC4Keys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1136 virtual bool createARC4Keys(Context &ctx, const ErrorStack &err=ErrorStack());
1137
1138
1139public:
1143 static constexpr unsigned int fmAPRSMessage() { return 60; }
1145 static constexpr unsigned int roamingChannels() { return 250; }
1147 static constexpr unsigned int roamingZones() { return 64; }
1149 static constexpr unsigned int aesEncryptionKeys() { return 254; }
1151 static constexpr unsigned int arc4EncryptionKeys() { return 254; }
1152 };
1153
1154protected:
1158 static constexpr unsigned int toChannelExtension() { return 0x00002000; }
1159 static constexpr unsigned int roamingChannelBitmap() { return 0x01042000; }
1160 static constexpr unsigned int roamingChannels() { return 0x01040000; }
1161 static constexpr unsigned int roamingZoneBitmap() { return 0x01042080; }
1162 static constexpr unsigned int roamingZones() { return 0x01043000; }
1163
1164 static constexpr unsigned int fmAPRSMessage() { return 0x02501200; }
1165 static constexpr unsigned int fmAPRSFrequencyNames() { return 0x02502000; }
1166 static constexpr unsigned int settingsExtension() { return 0x02501400; }
1167
1168 static constexpr unsigned int aesEncryptionKeys() { return 0x025c1000; }
1169 static constexpr unsigned int arc4EncryptionKeys() { return 0x025c5000; }
1171 };
1172
1176 static constexpr unsigned int fmAPRSMessage() { return 0x00000040; }
1178 };
1179};
1180
1181#endif // DMR6X2UVCODEPLUG_HH
Represents an APRS system within the generic config.
Definition gpssystem.hh:134
Icon
All implemented APRS icons.
Definition gpssystem.hh:166
Direction
Encodes the auto-repeater offset sign.
Definition anytone_settingsextension.hh:1191
Represents the base class for channel encodings in all AnyTone codeplugs.
Definition anytone_codeplug.hh:107
virtual Mode mode() const
Returns the channel mode (analog, digtital, etc).
Definition anytone_codeplug.cc:239
static constexpr unsigned int size()
Returns the size of the element.
Definition anytone_codeplug.hh:168
Represents the base class for the extended settings element in many AnyTone codeplugs.
Definition anytone_codeplug.hh:1320
virtual bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition anytone_codeplug.cc:4491
KeyFunction
All possible key functions.
Definition anytone_settingsextension.hh:267
TimeSlot
Possible repeater time-slots.
Definition anytone_settingsextension.hh:2014
RoamStart
Possible roaming start conditions.
Definition anytone_settingsextension.hh:1633
OutOfRangeAlert
Possible repeater out-of-range alerts.
Definition anytone_settingsextension.hh:1639
STEType
All possible STE (squelch tail eliminate) types.
Definition anytone_settingsextension.hh:2244
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:61
Base class for all codeplug contexts.
Definition codeplug.hh:291
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:65
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
const Object * as() const
Casts this object to the given type.
Definition configobject.hh:148
The config class, representing the codeplug configuration.
Definition config.hh:70
Represents the general config of the radio within the D868UV binary codeplug.
Definition d868uv_codeplug.hh:319
Represents the device specific binary codeplug for Anytone AT-D868UV radios.
Definition d868uv_codeplug.hh:188
Represents an AES encryption key.
Definition d878uv_codeplug.hh:1687
Represents an ARC4 encryption key.
Definition d878uv_codeplug.hh:1755
Represents the bitmap, indicating which roaming channel is valid.
Definition d878uv_codeplug.hh:1595
Implements the binary representation of a roaming channel within the codeplug.
Definition d878uv_codeplug.hh:1513
Represents the bitmap, indicating which roaming zone is valid.
Definition d878uv_codeplug.hh:1669
Represents a roaming zone within the binary codeplug.
Definition d878uv_codeplug.hh:1613
Represents the APRS settings within the binary DMR-6X2UV codeplug.
Definition dmr6x2uv_codeplug.hh:863
virtual Frequency fmFrequency() const
Returns the FM APRS frequency.
Definition dmr6x2uv_codeplug.cc:1918
virtual void setIcon(APRSSystem::Icon icon)
Sets the APRS icon.
Definition dmr6x2uv_codeplug.cc:2079
virtual bool dmrTimeSlotOverride(unsigned n)
Returns true if the n-th system overrides the channel time-slot.
Definition dmr6x2uv_codeplug.cc:2159
virtual QString path() const
Returns the path string.
Definition dmr6x2uv_codeplug.cc:2066
virtual Interval autoTXInterval() const
Returns the auto TX interval in seconds.
Definition dmr6x2uv_codeplug.cc:1976
virtual DMRContact::Type dmrCallType(unsigned n) const
Returns the call type for the n-th system.
Definition dmr6x2uv_codeplug.cc:2141
virtual QString source() const
Returns the source call.
Definition dmr6x2uv_codeplug.cc:2050
virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx)
Encodes the given GPS system.
Definition dmr6x2uv_codeplug.cc:2275
virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const
Returns the time slot if overridden (only valid if timeSlot returns true).
Definition dmr6x2uv_codeplug.cc:2163
virtual void setFMTXDelay(const Interval intv)
Sets the TX delay in ms.
Definition dmr6x2uv_codeplug.cc:1930
SignalingType
Possible settings for the FM APRS subtone type.
Definition dmr6x2uv_codeplug.hh:869
virtual void setFixedLocation(QGeoCoordinate &loc)
Sets the fixed location to send.
Definition dmr6x2uv_codeplug.cc:2007
static constexpr unsigned int size()
The size of the element.
Definition dmr6x2uv_codeplug.hh:878
virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx, const ErrorStack &err=ErrorStack())
Configures this APRS system from the given generic config.
Definition dmr6x2uv_codeplug.cc:2201
virtual void disableFixedLocation()
Disables sending a fixed location.
Definition dmr6x2uv_codeplug.cc:2030
virtual void setPath(const QString &path)
Sets the path string.
Definition dmr6x2uv_codeplug.cc:2070
virtual Channel::Power power() const
Returns the transmit power.
Definition dmr6x2uv_codeplug.cc:2085
virtual Interval fmTXDelay() const
Returns the TX delay in ms.
Definition dmr6x2uv_codeplug.cc:1926
virtual void setDMRChannelSelected(unsigned n)
Sets the channel to the current/selected channel.
Definition dmr6x2uv_codeplug.cc:2127
virtual unsigned dmrDestination(unsigned n) const
Returns the destination contact for the n-th system.
Definition dmr6x2uv_codeplug.cc:2132
virtual QString destination() const
Returns the destination call.
Definition dmr6x2uv_codeplug.cc:2035
virtual unsigned destinationSSID() const
Returns the destination SSID.
Definition dmr6x2uv_codeplug.cc:2040
virtual void clearDMRTimeSlotOverride(unsigned n)
Clears the time-slot override.
Definition dmr6x2uv_codeplug.cc:2178
virtual bool fromDMRAPRSSystems(Context &ctx)
Constructs all GPS system from the generic configuration.
Definition dmr6x2uv_codeplug.cc:2267
virtual void setPower(Channel::Power power)
Sets the transmit power.
Definition dmr6x2uv_codeplug.cc:2095
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location send.
Definition dmr6x2uv_codeplug.cc:1993
virtual SelectiveCall txTone() const
Returns the sub tone settings.
Definition dmr6x2uv_codeplug.cc:1935
virtual void setDMRPreWaveDelay(Interval ms)
Sets the repeater activation delay in ms.
Definition dmr6x2uv_codeplug.cc:2196
virtual Interval dmrPreWaveDelay() const
Returns the repeater activation delay in ms.
Definition dmr6x2uv_codeplug.cc:2192
virtual bool fixedLocationEnabled() const
Returns true if a fixed location is send.
Definition dmr6x2uv_codeplug.cc:1989
virtual void enableDMRRoaming(bool enable)
Enables/disables roaming.
Definition dmr6x2uv_codeplug.cc:2187
virtual void setDMRDestination(unsigned n, unsigned idx)
Sets the destination contact for the n-th system.
Definition dmr6x2uv_codeplug.cc:2136
virtual void setTXTone(const SelectiveCall &code)
Sets the sub tone settings.
Definition dmr6x2uv_codeplug.cc:1950
virtual Interval fmPreWaveDelay() const
Returns the pre-wave delay in ms.
Definition dmr6x2uv_codeplug.cc:2106
virtual bool dmrRoaming() const
Returns true if the roaming is enabled.
Definition dmr6x2uv_codeplug.cc:2183
virtual void setDMRChannelIndex(unsigned n, unsigned idx)
Sets the digital channel index for the n-th system.
Definition dmr6x2uv_codeplug.cc:2123
virtual void setFMPreWaveDelay(Interval ms)
Sets the pre-wave delay in ms.
Definition dmr6x2uv_codeplug.cc:2110
void clear()
Resets the settings.
Definition dmr6x2uv_codeplug.cc:1902
virtual void setDestination(const QString &call, unsigned ssid)
Sets the destination call & SSID.
Definition dmr6x2uv_codeplug.cc:2044
virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx)
Links the transmit channel within the generic APRS system based on the transmit frequency defined wit...
Definition dmr6x2uv_codeplug.cc:2246
virtual Interval manualTXInterval() const
Returns the manual TX interval in seconds.
Definition dmr6x2uv_codeplug.cc:1963
virtual unsigned sourceSSID() const
Returns the source SSID.
Definition dmr6x2uv_codeplug.cc:2055
virtual bool autoTX() const
Returns true if the auto transmit is enabled.
Definition dmr6x2uv_codeplug.cc:1972
bool isValid() const
Returns true if the pointer is not null.
Definition dmr6x2uv_codeplug.cc:1910
virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const
Links the specified generic GPS system.
Definition dmr6x2uv_codeplug.cc:2297
virtual bool dmrChannelIsSelected(unsigned n) const
Returns true if the channel points to the current/selected channel.
Definition dmr6x2uv_codeplug.cc:2115
virtual APRSSystem::Icon icon() const
Returns the APRS icon.
Definition dmr6x2uv_codeplug.cc:2075
virtual void disableAutoTX()
Disables auto tx.
Definition dmr6x2uv_codeplug.cc:1984
virtual GPSSystem * toDMRAPRSSystemObj(int idx) const
Constructs a generic GPS system from the idx-th encoded GPS system.
Definition dmr6x2uv_codeplug.cc:2290
virtual void setFMFrequency(Frequency f)
Sets the FM APRS frequency.
Definition dmr6x2uv_codeplug.cc:1922
virtual void setSource(const QString &call, unsigned ssid)
Sets the source call & SSID.
Definition dmr6x2uv_codeplug.cc:2059
virtual unsigned dmrChannelIndex(unsigned n) const
Returns the digital channel index for the n-th system.
Definition dmr6x2uv_codeplug.cc:2119
virtual void setDMRCallType(unsigned n, DMRContact::Type type)
Sets the call type for the n-th system.
Definition dmr6x2uv_codeplug.cc:2150
virtual APRSSystem * toFMAPRSSystem()
Constructs a generic APRS system configuration from this APRS system.
Definition dmr6x2uv_codeplug.cc:2231
virtual void setManualTXInterval(Interval sec)
Sets the manual TX interval in seconds.
Definition dmr6x2uv_codeplug.cc:1967
virtual void setAutoTXInterval(Interval sec)
Sets the auto TX interval in seconds.
Definition dmr6x2uv_codeplug.cc:1980
virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts)
Overrides the time slot of the n-th selected channel.
Definition dmr6x2uv_codeplug.cc:2171
Implements the channel element for the BTECH DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:680
bool hasDMREncryptionKeyIndex() const
Returns true, if an DMR encryption key index is set.
Definition dmr6x2uv_codeplug.cc:1557
unsigned int aesEncryptionKeyIndex() const
Returns the AES encryption key index.
Definition dmr6x2uv_codeplug.cc:1529
virtual void enableDMRARPSRX(bool enable)
Enables/disables the reception of DMR APRS messages.
Definition dmr6x2uv_codeplug.cc:1649
virtual APRSType aprsType() const
Returns the APRS type.
Definition dmr6x2uv_codeplug.cc:1672
virtual bool ranging() const
Returns true, if ranging is enabled.
Definition dmr6x2uv_codeplug.cc:1627
void setScanListIndex(unsigned idx)
Sets the first scan list index (0-based).
Definition dmr6x2uv_codeplug.cc:1586
FMAPRSPTTMode
Possible PTT modes for FM APRS.
Definition dmr6x2uv_codeplug.hh:683
void clearAESEncryptionKeyIndex()
Clears the AES encryption key index.
Definition dmr6x2uv_codeplug.cc:1539
bool hasScanListIndex() const
Returns true, if the first scan list index is set.
Definition dmr6x2uv_codeplug.cc:1578
virtual void setFMAPRSPTTMode(FMAPRSPTTMode mode)
Sets the FM APRS PTT mode.
Definition dmr6x2uv_codeplug.cc:1667
void setDMREncryptionType(DMREncryptionType type)
Sets the DMR encryption type.
Definition dmr6x2uv_codeplug.cc:1551
unsigned scanListIndex() const
Returns the first scan list index (0-based).
Definition dmr6x2uv_codeplug.cc:1582
virtual bool dmrAPRSPTTEnabled() const
Returns true, if the position is reported via DMR APRS on PTT.
Definition dmr6x2uv_codeplug.cc:1654
virtual void enableRoaming(bool enable)
Enables/disables roaming.
Definition dmr6x2uv_codeplug.cc:1621
virtual unsigned int dmrAPRSChannelIndex() const
Returns the DMR APRS report channel index.
Definition dmr6x2uv_codeplug.cc:1636
bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition dmr6x2uv_codeplug.cc:1740
virtual FMAPRSPTTMode fmAPRSPTTMode() const
Returns the FM APRS PTT mode.
Definition dmr6x2uv_codeplug.cc:1663
virtual bool roamingEnabled() const
Returns true if roaming is enabled for this channel.
Definition dmr6x2uv_codeplug.cc:1616
bool hasAESEncryptionKeyIndex() const
Returns true, if an AES encryption key index is set.
Definition dmr6x2uv_codeplug.cc:1524
virtual void enableRanging(bool enable)
Enables/disables ranging.
Definition dmr6x2uv_codeplug.cc:1631
virtual void setDMRAPRSChannelIndex(unsigned int idx)
Sets the DMR APRS report channel index.
Definition dmr6x2uv_codeplug.cc:1640
DMREncryptionType
Possible encryption types.
Definition dmr6x2uv_codeplug.hh:693
void clearScanListIndex()
Clears the first scan list index.
Definition dmr6x2uv_codeplug.cc:1590
void setAESEncryptionKeyIndex(unsigned int index)
Sets the AES encryption key index.
Definition dmr6x2uv_codeplug.cc:1534
virtual void setAPRSType(APRSType aprstype)
Sets the APRS type.
Definition dmr6x2uv_codeplug.cc:1676
APRSType
Possible APRS report types.
Definition dmr6x2uv_codeplug.hh:688
bool fromChannelObj(const Channel *c, Context &ctx)
Initializes this codeplug channel from the given generic configuration.
Definition dmr6x2uv_codeplug.cc:1681
unsigned int dmrEncryptionKeyIndex() const
Returns the DMR encryption key index.
Definition dmr6x2uv_codeplug.cc:1562
DMREncryptionType dmrEncryptionType() const
Returns the DMR encryption type.
Definition dmr6x2uv_codeplug.cc:1545
virtual void enableDMRAPRSPTT(bool enable)
Enables/disables reporting the position via DMR APRS on PTT.
Definition dmr6x2uv_codeplug.cc:1658
virtual bool dmrAPRSRXEnabled() const
Returns true, if the reception of DMR APRS messages is enabled.
Definition dmr6x2uv_codeplug.cc:1645
void clearDMREncryptionKeyIndex()
Clears the DMR encryption key index.
Definition dmr6x2uv_codeplug.cc:1572
void setDMREncryptionKeyIndex(unsigned int index)
Sets the DMR encryption key index.
Definition dmr6x2uv_codeplug.cc:1567
Starting from FW version 2.21, all devices encode an channel settings extension element at an offset ...
Definition dmr6x2uv_codeplug.hh:819
virtual unsigned int arc4KeyIndex() const
Returns the 0-based ARC4 key index.
Definition dmr6x2uv_codeplug.cc:1825
virtual void clearARC4KeyIndex()
Clears the ARC4 key index.
Definition dmr6x2uv_codeplug.cc:1835
virtual void setARC4KeyIndex(unsigned int idx)
Sets the ARC4 key index.
Definition dmr6x2uv_codeplug.cc:1830
virtual bool linkChannelObj(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously created channel object.
Definition dmr6x2uv_codeplug.cc:1841
virtual bool hasARC4KeyIndex() const
Returns true, if the channel has an ARC4 key index assigned.
Definition dmr6x2uv_codeplug.cc:1820
void clear()
Resets the channel extension.
Definition dmr6x2uv_codeplug.cc:1813
virtual bool fromChannelObj(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given channel object.
Definition dmr6x2uv_codeplug.cc:1864
static constexpr unsigned int size()
The size of the element.
Definition dmr6x2uv_codeplug.hh:829
Implements some settings extension for the BTECH DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:506
virtual Interval autoRoamDelay() const
Returns the effective roaming waiting time in seconds (0-30s).
Definition dmr6x2uv_codeplug.cc:1312
void setZoneANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO A.
Definition dmr6x2uv_codeplug.cc:1359
virtual void enableCustomChannelBackground(bool enable)
Enables/disables the custom channel background.
Definition dmr6x2uv_codeplug.cc:1228
virtual void setEncryptionType(AnytoneDMRSettingsExtension::EncryptionType type)
Sets the encryption type.
Definition dmr6x2uv_codeplug.cc:1347
virtual Interval autoRoamPeriod() const
Returns the auto-roaming interval in minutes (1-256).
Definition dmr6x2uv_codeplug.cc:1302
virtual void setRepeaterOutOfRangeAlert(AnytoneRoamingSettingsExtension::OutOfRangeAlert alert)
Sets the repeater out-of-range alert type.
Definition dmr6x2uv_codeplug.cc:1261
AnytoneDisplaySettingsExtension::Color zoneANameColor() const
Returns the color of the zone name for VFO A.
Definition dmr6x2uv_codeplug.cc:1355
virtual void setMuteTimer(Interval minutes)
Sets the mute timer in minutes.
Definition dmr6x2uv_codeplug.cc:1335
virtual void setFontColor(AnytoneDisplaySettingsExtension::Color color)
Sets the font color.
Definition dmr6x2uv_codeplug.cc:1219
virtual void setRepeaterRangeCheckInterval(Interval intv)
Sets the repeater check interval in seconds (5-50s).
Definition dmr6x2uv_codeplug.cc:1278
static constexpr unsigned int size()
Returns the size of the element.
Definition dmr6x2uv_codeplug.hh:516
virtual unsigned int defaultRoamingZoneIndex() const
Returns the roaming zone index.
Definition dmr6x2uv_codeplug.cc:1233
virtual AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias encoding.
Definition dmr6x2uv_codeplug.cc:1206
void clear()
Resets the general settings.
Definition dmr6x2uv_codeplug.cc:1183
virtual void setAutoRoamDelay(Interval sec)
Sets the effective roaming waiting time in seconds (0-30s).
Definition dmr6x2uv_codeplug.cc:1316
void setChannelBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the channel name color for the VFO B.
Definition dmr6x2uv_codeplug.cc:1384
virtual void setAutoRoamPeriod(Interval minutes)
Sets the auto-roaming interval in minutes (1-256).
Definition dmr6x2uv_codeplug.cc:1306
virtual bool repeaterRangeCheckEnabled() const
Returns true if repeater check is enabled.
Definition dmr6x2uv_codeplug.cc:1249
virtual void setRoamingStartCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the condition to start roaming.
Definition dmr6x2uv_codeplug.cc:1297
virtual void setRoamingReturnCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the roaming return condition.
Definition dmr6x2uv_codeplug.cc:1326
void setZoneBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO B.
Definition dmr6x2uv_codeplug.cc:1367
virtual AnytoneRoamingSettingsExtension::OutOfRangeAlert repeaterOutOfRangeAlert() const
Returns the repeater out-of-range alert type.
Definition dmr6x2uv_codeplug.cc:1257
virtual AnytoneRoamingSettingsExtension::RoamStart roamingReturnCondition() const
Returns the roaming return condition.
Definition dmr6x2uv_codeplug.cc:1322
AnytoneDisplaySettingsExtension::Color zoneBNameColor() const
Returns the color of the zone name for VFO B.
Definition dmr6x2uv_codeplug.cc:1363
virtual unsigned int repeaterRangeCheckCount() const
Returns the number of times, a repeater reconnection is tried (3-5).
Definition dmr6x2uv_codeplug.cc:1283
virtual void enableRepeaterRangeCheck(bool enable)
Enables/disables repeater check.
Definition dmr6x2uv_codeplug.cc:1253
virtual Interval repeaterRangeCheckInterval() const
Returns the repeater check interval in seconds (5-50s).
Definition dmr6x2uv_codeplug.cc:1274
virtual void enableAutoRoaming(bool enable)
Enables/disables auto roaming.
Definition dmr6x2uv_codeplug.cc:1245
bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Link config from settings extension.
Definition dmr6x2uv_codeplug.cc:1483
AnytoneDisplaySettingsExtension::Color channelBNameColor() const
Returns the color of the channel name for VFO B.
Definition dmr6x2uv_codeplug.cc:1380
bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Update config from settings.
Definition dmr6x2uv_codeplug.cc:1439
virtual unsigned int repeaterCheckNumNotifications() const
Returns the number of times, the repeater out-of-range reminder is shown (1-10).
Definition dmr6x2uv_codeplug.cc:1265
virtual bool autoRoamingEnabled() const
Returns true if auto roaming is enabled.
Definition dmr6x2uv_codeplug.cc:1241
virtual AnytoneDMRSettingsExtension::EncryptionType encryptionType() const
Returns the encryption type.
Definition dmr6x2uv_codeplug.cc:1341
virtual void setChannelANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the name color for channel A.
Definition dmr6x2uv_codeplug.cc:1376
virtual void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding)
Sets the talker alias encoding.
Definition dmr6x2uv_codeplug.cc:1210
virtual AnytoneDisplaySettingsExtension::Color fontColor() const
Returns the font color.
Definition dmr6x2uv_codeplug.cc:1215
virtual AnytoneRoamingSettingsExtension::RoamStart roamingStartCondition() const
Returns the condition to start roaming.
Definition dmr6x2uv_codeplug.cc:1293
virtual void setDefaultRoamingZoneIndex(unsigned int index)
Sets the roaming zone index.
Definition dmr6x2uv_codeplug.cc:1237
virtual AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition dmr6x2uv_codeplug.cc:1197
virtual Interval muteTimer() const
Returns the mute timer in minutes.
Definition dmr6x2uv_codeplug.cc:1331
virtual void setRepeaterCheckNumNotifications(unsigned int n)
Sets the number of times, the repeater out-of-range reminder is shown (1-10).
Definition dmr6x2uv_codeplug.cc:1269
virtual bool sendTalkerAlias() const
Returns true if the talker alias is sent.
Definition dmr6x2uv_codeplug.cc:1188
bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the settings from the config.
Definition dmr6x2uv_codeplug.cc:1389
virtual void setRepeaterRangeCheckCount(unsigned int n)
Sets the number of times, a repeater reconnection is tried (3-5).
Definition dmr6x2uv_codeplug.cc:1287
virtual AnytoneDisplaySettingsExtension::Color channelANameColor() const
Returns the name color for channel A.
Definition dmr6x2uv_codeplug.cc:1372
virtual void enableSendTalkerAlias(bool enable)
Enables/disables sending the talker alias.
Definition dmr6x2uv_codeplug.cc:1192
virtual void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource mode)
Sets the talker alias source.
Definition dmr6x2uv_codeplug.cc:1201
virtual bool customChannelBackgroundEnabled() const
Returns true if the custom channel background is enabled.
Definition dmr6x2uv_codeplug.cc:1224
General settings element for the DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:73
void setKeyToneLevelAdjustable() override
Sets the key-tone level adjustable.
Definition dmr6x2uv_codeplug.cc:754
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const override
Returns the key function for a long press on the function key 2.
Definition dmr6x2uv_codeplug.cc:380
virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const
Returns the monitor slot match.
Definition dmr6x2uv_codeplug.cc:608
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a short press on the function key 1/A.
Definition dmr6x2uv_codeplug.cc:303
virtual Interval rxBacklightDuration() const
Returns backlight duration during RX.
Definition dmr6x2uv_codeplug.cc:970
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a long press on the function key 2.
Definition dmr6x2uv_codeplug.cc:384
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const override
Returns the key function for a long press on the function key 2.
Definition dmr6x2uv_codeplug.cc:353
virtual void enableFMSendIDAndContact(bool enable)
Enables/disables sending contact with FM ID.
Definition dmr6x2uv_codeplug.cc:896
virtual unsigned dtmfToneDuration() const
Returns the DTMF tone duration in ms.
Definition dmr6x2uv_codeplug.cc:485
unsigned defaultChannelBIndex() const override
Returns the default channel index for VFO B.
Definition dmr6x2uv_codeplug.cc:947
virtual AnytoneDisplaySettingsExtension::Language language() const
Returns the UI language.
Definition dmr6x2uv_codeplug.cc:256
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a long press on the function key 1.
Definition dmr6x2uv_codeplug.cc:375
bool keyLockForced() const override
Returns true if the "professional" key is locked.
Definition dmr6x2uv_codeplug.cc:783
void setDefaultChannelAIndex(unsigned idx) override
Sets the default channel index for VFO A.
Definition dmr6x2uv_codeplug.cc:926
bool defaultChannel() const override
Returns true if the default boot channel is enabled.
Definition dmr6x2uv_codeplug.cc:901
void enableShowLastHeard(bool enable) override
Enables/disables showing last heard.
Definition dmr6x2uv_codeplug.cc:826
void enableVFOModeA(bool enable) override
Enables/disables VFO mode for VFO A.
Definition dmr6x2uv_codeplug.cc:393
void enableGPSUnitsImperial(bool enable) override
Enables/disables imperial GPS units.
Definition dmr6x2uv_codeplug.cc:844
virtual void setVFOFrequencyStep(Frequency kHz)
Sets the VFO frequency step in kHz.
Definition dmr6x2uv_codeplug.cc:279
virtual Interval groupCallHangTime() const
Returns the group call hang time in seconds.
Definition dmr6x2uv_codeplug.cc:435
virtual unsigned transmitTimeout() const
Returns the transmit timeout in seconds.
Definition dmr6x2uv_codeplug.cc:247
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz) override
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition dmr6x2uv_codeplug.cc:878
virtual void setSTEFrequency(double freq)
Sets the STE (squelch tail eliminate) frequency setting.
Definition dmr6x2uv_codeplug.cc:424
virtual void setTransmitTimeout(unsigned tot)
Sets the transmit timeout in seconds.
Definition dmr6x2uv_codeplug.cc:251
bool knobLock() const override
Returns true if the knob is locked.
Definition dmr6x2uv_codeplug.cc:759
bool showLastHeard() const override
Returns true if the last heard is shown while pressing PTT.
Definition dmr6x2uv_codeplug.cc:822
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const override
Returns the key function for a short press on the function key 3/C.
Definition dmr6x2uv_codeplug.cc:317
virtual void setGroupCallHangTime(Interval sec)
Sets the group call hang time in seconds.
Definition dmr6x2uv_codeplug.cc:439
virtual bool proMode() const
Returns true if the "pro mode" is enabled.
Definition dmr6x2uv_codeplug.cc:554
virtual void setWakeHeadPeriod(Interval ms)
Sets the wake head-period in ms.
Definition dmr6x2uv_codeplug.cc:463
virtual void setRXBacklightDuration(Interval sec)
Sets the backlight duration during RX.
Definition dmr6x2uv_codeplug.cc:978
void enableShowCurrentContact(bool enable) override
Enables/disables display of current contact.
Definition dmr6x2uv_codeplug.cc:737
void enableIdleChannelTone(bool enable) override
Enables/disables the idle channel tone.
Definition dmr6x2uv_codeplug.cc:242
virtual void enableRemoteStunKill(bool enable)
Enables/disables remote stun/kill.
Definition dmr6x2uv_codeplug.cc:585
virtual bool selectTXContactEnabled() const
Returns true, if the selection of a TX contact is enabled.
Definition dmr6x2uv_codeplug.cc:599
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a long press on the function key 3.
Definition dmr6x2uv_codeplug.cc:366
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a long press on the function key 2.
Definition dmr6x2uv_codeplug.cc:357
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a long press on the function key 1.
Definition dmr6x2uv_codeplug.cc:348
virtual void enableFilterOwnID(bool enable)
Enables/disables filter of own ID in call lists.
Definition dmr6x2uv_codeplug.cc:567
virtual void setStandbyBackgroundColor(AnytoneDisplaySettingsExtension::Color color)
Sets the stand-by background color.
Definition dmr6x2uv_codeplug.cc:990
virtual bool filterOwnID() const
Returns true if the own ID is filtered in call lists.
Definition dmr6x2uv_codeplug.cc:563
virtual void enableSMSConfirm(bool enable)
Enables/disables SMS confirmation.
Definition dmr6x2uv_codeplug.cc:701
bool keyToneLevelAdjustable() const override
Returns true if the key-tone level is adjustable.
Definition dmr6x2uv_codeplug.cc:742
virtual void enableMonitorColorCodeMatch(bool enable)
Enables/disables monitor color code match.
Definition dmr6x2uv_codeplug.cc:621
bool keepLastCaller() const override
Returns true if the last caller is kept when changing channel.
Definition dmr6x2uv_codeplug.cc:960
void enableKnobLock(bool enable) override
Enables/disables the knob lock.
Definition dmr6x2uv_codeplug.cc:763
virtual AnytoneSettingsExtension::STEType steType() const
Returns the STE (squelch tail eliminate) type.
Definition dmr6x2uv_codeplug.cc:407
virtual void setManDownDelay(Interval sec)
Sets the "man down" delay in seconds.
Definition dmr6x2uv_codeplug.cc:648
virtual bool remoteMonitor() const
Returns true remote monitor is enabled.
Definition dmr6x2uv_codeplug.cc:590
virtual void setFMCallHold(unsigned sec)
Sets the analog call hold in seconds.
Definition dmr6x2uv_codeplug.cc:657
bool sidekeysLock() const override
Returns true if the sidekeys are locked.
Definition dmr6x2uv_codeplug.cc:775
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a short press on the function key 2/B.
Definition dmr6x2uv_codeplug.cc:312
void setAutoRepeaterMinFrequencyVHF(Frequency Hz) override
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition dmr6x2uv_codeplug.cc:853
void setDefaultChannelBToVFO() override
Sets the default channel for VFO B to be VFO.
Definition dmr6x2uv_codeplug.cc:955
virtual bool maintainCallChannel() const
Returns true if the call channel is maintained.
Definition dmr6x2uv_codeplug.cc:671
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const override
Returns the auto-repeater direction for VFO B.
Definition dmr6x2uv_codeplug.cc:883
virtual Interval preWaveDelay() const
Returns the pre-wave time in ms.
Definition dmr6x2uv_codeplug.cc:451
virtual void enableSelectTXContact(bool enable)
Enables/disables selection of the TX contact.
Definition dmr6x2uv_codeplug.cc:603
virtual unsigned fmCallHold() const
Returns the analog call hold in seconds.
Definition dmr6x2uv_codeplug.cc:653
static constexpr unsigned int size()
Returns the size of the element.
Definition dmr6x2uv_codeplug.hh:141
virtual double steFrequency() const
Returns the STE (squelch tail eliminate) frequency setting in Hz.
Definition dmr6x2uv_codeplug.cc:415
bool keyToneEnabled() const override
Returns true, if the key tone is enabled.
Definition dmr6x2uv_codeplug.cc:572
virtual void enableMonitorIDMatch(bool enable)
Enables/disables monitor ID match.
Definition dmr6x2uv_codeplug.cc:630
virtual void enableManDown(bool enable)
Enables/disables "man down".
Definition dmr6x2uv_codeplug.cc:515
TBSTFrequency
TBST (open repeater) frequencies.
Definition dmr6x2uv_codeplug.hh:118
virtual void setPrivateCallHangTime(Interval sec)
Sets the private call hang time in seconds.
Definition dmr6x2uv_codeplug.cc:447
virtual void setDTMFToneDuration(unsigned ms)
Sets the DTMF tone duration in ms.
Definition dmr6x2uv_codeplug.cc:496
void setDefaultChannelBIndex(unsigned idx) override
Sets the default channel index for VFO B.
Definition dmr6x2uv_codeplug.cc:951
virtual void enableMaintainCallChannel(bool enable)
Enables/disables maintaining the call channel.
Definition dmr6x2uv_codeplug.cc:675
void setDefaultChannelAToVFO() override
Sets the default channel for VFO A to be VFO.
Definition dmr6x2uv_codeplug.cc:930
bool vfoModeA() const override
Returns true if the VFO A is in VFO mode.
Definition dmr6x2uv_codeplug.cc:389
virtual bool wfmVFOEnabled() const
Returns true if the WFM RX is in VFO mode.
Definition dmr6x2uv_codeplug.cc:476
void enableSidekeysLock(bool enable) override
Enables/disables the sidekeys lock.
Definition dmr6x2uv_codeplug.cc:779
virtual unsigned priorityZoneBIndex() const
Returns the priority Zone B index.
Definition dmr6x2uv_codeplug.cc:688
virtual bool monitorColorCodeMatch() const
Returns true if the monitor matches color code.
Definition dmr6x2uv_codeplug.cc:617
virtual bool fmSendIDAndContact() const
If enabled, the FM ID is sent together with selected contact.
Definition dmr6x2uv_codeplug.cc:892
bool vfoModeB() const override
Returns true if the VFO B is in VFO mode.
Definition dmr6x2uv_codeplug.cc:398
virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match)
Sets the monitor slot match.
Definition dmr6x2uv_codeplug.cc:612
unsigned defaultChannelAIndex() const override
Returns the default channel index for VFO A.
Definition dmr6x2uv_codeplug.cc:922
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition dmr6x2uv_codeplug.cc:529
virtual bool gpsMessageEnabled() const
Returns true if the GPS range reporting is enabled.
Definition dmr6x2uv_codeplug.cc:662
void enableKeypadLock(bool enable) override
Enables/disables the keypad lock.
Definition dmr6x2uv_codeplug.cc:771
DTMFDuration
DTMF signalling durations.
Definition dmr6x2uv_codeplug.hh:113
virtual void enableRemoteMonitor(bool enable)
Enables/disables remote monitor.
Definition dmr6x2uv_codeplug.cc:594
unsigned defaultZoneIndexA() const override
Returns the default zone index (0-based) for VFO A.
Definition dmr6x2uv_codeplug.cc:910
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const override
Returns the key function for a short press on the function key 2.
Definition dmr6x2uv_codeplug.cc:335
virtual void setPreWaveDelay(Interval ms)
Sets the pre-wave time in ms.
Definition dmr6x2uv_codeplug.cc:455
void enableKeepLastCaller(bool enable) override
Enables/disables keeping the last caller when changing the channel.
Definition dmr6x2uv_codeplug.cc:964
virtual Interval wakeHeadPeriod() const
Returns the wake head-period in ms.
Definition dmr6x2uv_codeplug.cc:459
virtual unsigned int manualDialedPrivateCallHangTime() const
Returns the private-call hang time, if private call was dialed manually.
Definition dmr6x2uv_codeplug.cc:1003
bool keypadLock() const override
Returns true if the keypad is locked.
Definition dmr6x2uv_codeplug.cc:767
void enableVFOModeB(bool enable) override
Enables/disables VFO mode for VFO B.
Definition dmr6x2uv_codeplug.cc:402
void setAutoRepeaterMaxFrequencyVHF(Frequency Hz) override
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition dmr6x2uv_codeplug.cc:861
virtual bool remoteStunKill() const
Returns true remote stun/kill is enabled.
Definition dmr6x2uv_codeplug.cc:581
virtual bool monitorTimeSlotHold() const
Returns true if the monitor holds the time slot.
Definition dmr6x2uv_codeplug.cc:635
virtual AnytoneRepeaterSettingsExtension::TimeSlot simplexRepeaterTimeslot() const
Returns the time-slot in simplex repeater mode.
Definition dmr6x2uv_codeplug.cc:793
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const override
Returns the key function for a short press on the function key 1.
Definition dmr6x2uv_codeplug.cc:326
bool showCurrentContact() const override
Returns true if the current contact is shown.
Definition dmr6x2uv_codeplug.cc:733
virtual void setTBSTFrequency(Frequency freq)
Sets the TBST frequency.
Definition dmr6x2uv_codeplug.cc:539
bool idleChannelTone() const override
Returns true if the idle channel tone is enabled.
Definition dmr6x2uv_codeplug.cc:238
virtual bool smsConfirmEnabled() const
Returns true, if a SMS confirmation is sent.
Definition dmr6x2uv_codeplug.cc:697
Frequency autoRepeaterMinFrequencyUHF() const override
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition dmr6x2uv_codeplug.cc:866
virtual void setManualDialedPrivateCallHangTime(unsigned int dur)
Sets the private-call hang time, if the private call was dialed manually.
Definition dmr6x2uv_codeplug.cc:1007
virtual Interval privateCallHangTime() const
Returns the private call hang time in seconds.
Definition dmr6x2uv_codeplug.cc:443
virtual void setSimplexRepeaterTimeslot(AnytoneRepeaterSettingsExtension::TimeSlot slot)
Sets the time-slot in simplex repeater mode.
Definition dmr6x2uv_codeplug.cc:803
virtual void enableMonitorTimeSlotHold(bool enable)
Enables/disables monitor time slot hold.
Definition dmr6x2uv_codeplug.cc:639
virtual Frequency vfoFrequencyStep() const
Returns the VFO frequency step in kHz.
Definition dmr6x2uv_codeplug.cc:265
virtual void enableGPSMessage(bool enable)
Enables/disables GPS range reporting.
Definition dmr6x2uv_codeplug.cc:666
bool gpsUnitsImperial() const override
Returns true if the GPS units are imperial.
Definition dmr6x2uv_codeplug.cc:840
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const override
Returns the key function for a short press on the function key 1/A.
Definition dmr6x2uv_codeplug.cc:299
virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const
Returns the SMS format.
Definition dmr6x2uv_codeplug.cc:831
Interval gpsUpdatePeriod() const override
Returns the GPS update period in seconds.
Definition dmr6x2uv_codeplug.cc:715
bool defaultChannelAIsVFO() const override
Returns true if the default channel for VFO A is VFO.
Definition dmr6x2uv_codeplug.cc:918
virtual void setPriorityZoneAIndex(unsigned idx)
Sets the priority zone A index.
Definition dmr6x2uv_codeplug.cc:684
FreqStep
Possible VFO frequency steps.
Definition dmr6x2uv_codeplug.hh:101
@ FREQ_STEP_2_5kHz
2.5kHz
Definition dmr6x2uv_codeplug.hh:102
@ FREQ_STEP_50kHz
50kHz
Definition dmr6x2uv_codeplug.hh:109
@ FREQ_STEP_12_5kHz
12.5kHz
Definition dmr6x2uv_codeplug.hh:106
@ FREQ_STEP_6_25kHz
6.25kHz
Definition dmr6x2uv_codeplug.hh:104
@ FREQ_STEP_25kHz
25kHz
Definition dmr6x2uv_codeplug.hh:108
@ FREQ_STEP_5kHz
5kHz
Definition dmr6x2uv_codeplug.hh:103
@ FREQ_STEP_20kHz
20kHz
Definition dmr6x2uv_codeplug.hh:107
@ FREQ_STEP_10kHz
10kHz
Definition dmr6x2uv_codeplug.hh:105
virtual void setManualDialedGroupCallHangTime(unsigned int dur)
Sets the group-call hang time, if the group call was dialed manually.
Definition dmr6x2uv_codeplug.cc:999
bool updateConfig(Context &ctx) override
Updates the abstract config from general settings.
Definition dmr6x2uv_codeplug.cc:1093
virtual void enableMonitorSimplexRepeater(bool enable)
Enables/disables the speaker during RX in simplex repeater mode.
Definition dmr6x2uv_codeplug.cc:728
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const override
Returns the key function for a short press on the function key 2/B.
Definition dmr6x2uv_codeplug.cc:308
void setAutoRepeaterMinFrequencyUHF(Frequency Hz) override
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition dmr6x2uv_codeplug.cc:870
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const override
Returns the key function for a long press on the function key 1.
Definition dmr6x2uv_codeplug.cc:344
void setGPSUpdatePeriod(Interval sec) override
Sets the GPS update period in seconds.
Definition dmr6x2uv_codeplug.cc:719
virtual void setPriorityZoneBIndex(unsigned idx)
Sets the priority zone B index.
Definition dmr6x2uv_codeplug.cc:692
void enableKeyTone(bool enable) override
Enables/disables the key-tone.
Definition dmr6x2uv_codeplug.cc:576
virtual void enableSimplexRepeater(bool enable)
Enables disables the simplex repeater feature.
Definition dmr6x2uv_codeplug.cc:710
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const override
Returns the key function for a long press on the function key 3.
Definition dmr6x2uv_codeplug.cc:362
virtual bool monitorIDMatch() const
Returns true if the monitor matches ID.
Definition dmr6x2uv_codeplug.cc:626
void setKeyToneLevel(unsigned level) override
Sets the key-tone level.
Definition dmr6x2uv_codeplug.cc:750
virtual void enableWFMMonitor(bool enable)
Enables/disables WFM monitor.
Definition dmr6x2uv_codeplug.cc:524
bool fromConfig(const Flags &flags, Context &ctx) override
Encodes the general settings.
Definition dmr6x2uv_codeplug.cc:1013
Frequency autoRepeaterMinFrequencyVHF() const override
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition dmr6x2uv_codeplug.cc:849
virtual bool wfmMonitor() const
Returns true if WFM monitor is enabled.
Definition dmr6x2uv_codeplug.cc:520
bool defaultChannelBIsVFO() const override
Returns true if the default channel for VFO B is VFO.
Definition dmr6x2uv_codeplug.cc:943
virtual unsigned priorityZoneAIndex() const
Returns the priority Zone A index.
Definition dmr6x2uv_codeplug.cc:680
virtual bool simplexRepeaterEnabled() const
Returns true if the simplex repeater feature is enabled.
Definition dmr6x2uv_codeplug.cc:706
unsigned defaultZoneIndexB() const override
Returns the default zone index (0-based) for VFO B.
Definition dmr6x2uv_codeplug.cc:935
virtual void enableProMode(bool enable)
Enables/disables the "pro mode".
Definition dmr6x2uv_codeplug.cc:558
Frequency autoRepeaterMaxFrequencyVHF() const override
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition dmr6x2uv_codeplug.cc:857
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const override
Returns the key function for a long press on the function key 1.
Definition dmr6x2uv_codeplug.cc:371
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a short press on the function key 1.
Definition dmr6x2uv_codeplug.cc:330
virtual void setLanguage(AnytoneDisplaySettingsExtension::Language lang)
Sets the UI language.
Definition dmr6x2uv_codeplug.cc:260
RepeaterTimeSlot
Encoding of repeater timeslot.
Definition dmr6x2uv_codeplug.hh:128
virtual bool monitorSimplexRepeaterEnabled() const
Returns true if the speaker is switched on during RX in simplex repeater mode, see simplexRepeaterEna...
Definition dmr6x2uv_codeplug.cc:724
virtual bool manDown() const
Returns true if "man down" is enabled.
Definition dmr6x2uv_codeplug.cc:511
virtual unsigned int manualDialedGroupCallHangTime() const
Returns the group-call hang time, if group call was dialed manually.
Definition dmr6x2uv_codeplug.cc:995
Frequency autoRepeaterMaxFrequencyUHF() const override
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition dmr6x2uv_codeplug.cc:874
void setDefaultZoneIndexB(unsigned idx) override
Sets the default zone (0-based) for VFO B.
Definition dmr6x2uv_codeplug.cc:939
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a short press on the function key 2.
Definition dmr6x2uv_codeplug.cc:339
virtual AnytoneDisplaySettingsExtension::Color standbyBackgroundColor() const
Returns the stand-by background color.
Definition dmr6x2uv_codeplug.cc:986
void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir) override
Sets the auto-repeater direction for VFO B.
Definition dmr6x2uv_codeplug.cc:887
virtual Interval manDownDelay() const
Returns the "man down" delay in seconds.
Definition dmr6x2uv_codeplug.cc:644
void enableKeyLockForced(bool enable) override
Enables/disables the "professional" key lock.
Definition dmr6x2uv_codeplug.cc:787
virtual void setWFMChannelIndex(unsigned idx)
Sets the wide-FM (broadcast) channel index.
Definition dmr6x2uv_codeplug.cc:472
STEFrequency
All possible STE (squelch tail eliminate) frequencies.
Definition dmr6x2uv_codeplug.hh:123
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func) override
Sets the key function for a short press on the function key 3/C.
Definition dmr6x2uv_codeplug.cc:321
virtual unsigned wfmChannelIndex() const
Returns the wide-FM (broadcast) channel index.
Definition dmr6x2uv_codeplug.cc:468
virtual void setSTEType(AnytoneSettingsExtension::STEType type)
Sets the STE (squelch tail eliminate) type.
Definition dmr6x2uv_codeplug.cc:411
virtual void enableWFMVFO(bool enable)
Enables/disables VFO mode for WFM RX.
Definition dmr6x2uv_codeplug.cc:480
void setDefaultZoneIndexA(unsigned idx) override
Sets the default zone (0-based) for VFO A.
Definition dmr6x2uv_codeplug.cc:914
unsigned keyToneLevel() const override
Returns the key-tone level (0=adjustable).
Definition dmr6x2uv_codeplug.cc:746
void enableDefaultChannel(bool enable) override
Enables/disables default boot channel.
Definition dmr6x2uv_codeplug.cc:905
virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt)
Sets the SMS format.
Definition dmr6x2uv_codeplug.cc:835
Represents the device specific binary codeplug for BTECH DMR-6X2UV radios.
Definition dmr6x2uv_codeplug.hh:15
void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition dmr6x2uv_codeplug.cc:2403
void allocateGPSSystems()
Allocates GPS settings memory section.
Definition dmr6x2uv_codeplug.cc:2590
virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Links roaming channels and zones.
Definition dmr6x2uv_codeplug.cc:2780
bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition dmr6x2uv_codeplug.cc:2626
virtual void allocateAESKeys()
Allocates memory to encode/decode AES keys.
Definition dmr6x2uv_codeplug.cc:2788
virtual bool createAESKeys(Context &ctx, const ErrorStack &err=ErrorStack())
Decode AES keys from the codeplug.
Definition dmr6x2uv_codeplug.cc:2813
bool allocateBitmaps()
Allocates the bitmaps.
Definition dmr6x2uv_codeplug.cc:2362
bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition dmr6x2uv_codeplug.cc:2544
virtual bool encodeARC4Keys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode all ARC4 keys.
Definition dmr6x2uv_codeplug.cc:2847
bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition dmr6x2uv_codeplug.cc:2525
bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition dmr6x2uv_codeplug.cc:2663
Config * preprocess(Config *config, const ErrorStack &err) const
Returns a prepared configuration for this particular radio.
Definition dmr6x2uv_codeplug.cc:2337
virtual void allocateRoaming()
Allocates memory to store all roaming channels and zones.
Definition dmr6x2uv_codeplug.cc:2685
void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition dmr6x2uv_codeplug.cc:2375
bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition dmr6x2uv_codeplug.cc:2599
D878UVCodeplug::RoamingZoneBitmapElement RoamingZoneBitmapElement
Reuse roaming zone bitmap from D878UV.
Definition dmr6x2uv_codeplug.hh:1071
bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition dmr6x2uv_codeplug.cc:2485
D878UVCodeplug::AESEncryptionKeyElement AESEncryptionKeyElement
Reuse AES encryption key from D878UV.
Definition dmr6x2uv_codeplug.hh:1076
D878UVCodeplug::RoamingZoneElement RoamingZoneElement
Reuse roaming zone from D878UV.
Definition dmr6x2uv_codeplug.hh:1073
bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition dmr6x2uv_codeplug.cc:2499
virtual void allocateARC4Keys()
Allocates memory to encode/decode ARC4 keys.
Definition dmr6x2uv_codeplug.cc:2838
bool createElements(Context &ctx, const ErrorStack &err=ErrorStack())
Creates all config objects from the downloaded codeplug.
Definition dmr6x2uv_codeplug.cc:2433
void allocateChannels()
Allocate channels from bitmap.
Definition dmr6x2uv_codeplug.cc:2505
D878UVCodeplug::RoamingChannelElement RoamingChannelElement
Reuse roaming channel from D878UV.
Definition dmr6x2uv_codeplug.hh:1069
void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition dmr6x2uv_codeplug.cc:2393
virtual bool createARC4Keys(Context &ctx, const ErrorStack &err=ErrorStack())
Decode ARC4 keys from the codeplug.
Definition dmr6x2uv_codeplug.cc:2863
virtual bool encodeAESKeys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode all AES keys.
Definition dmr6x2uv_codeplug.cc:2797
virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Creates roaming channels and zones from codeplug.
Definition dmr6x2uv_codeplug.cc:2750
bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition dmr6x2uv_codeplug.cc:2470
void allocateGeneralSettings()
Allocates general settings memory section.
Definition dmr6x2uv_codeplug.cc:2464
D878UVCodeplug::ARC4EncryptionKeyElement ARC4EncryptionKeyElement
Reuse ARC4 encryption key from D878UV.
Definition dmr6x2uv_codeplug.hh:1078
D878UVCodeplug::RoamingChannelBitmapElement RoamingChannelBitmapElement
Reuse roaming channel bitmap from D878UV.
Definition dmr6x2uv_codeplug.hh:1067
bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given config (via context) to the binary codeplug.
Definition dmr6x2uv_codeplug.cc:2413
bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Links all previously created config objects.
Definition dmr6x2uv_codeplug.cc:2451
bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition dmr6x2uv_codeplug.cc:2563
virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the roaming channels and zones.
Definition dmr6x2uv_codeplug.cc:2716
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:398
Type
Possible call types for a contact.
Definition contact.hh:155
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
This class represents a GPS signalling system within the codeplug.
Definition gpssystem.hh:65
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMinutes(unsigned long long min)
Definition interval.hh:79
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
Simple range class representing some range in some data type.
Definition ranges.hh:14
Represents a zone within the generic configuration.
Definition zone.hh:15
Implements encoding of CTCSS tones.
Definition anytone_codeplug.hh:27
Internal used offsets within the channel element.
Definition anytone_codeplug.hh:392
Some internal used offsets within the element.
Definition d868uv_codeplug.hh:578
Some limits for the codeplug.
Definition d868uv_codeplug.hh:836
Some internal used offsets within the codeplug.
Definition d868uv_codeplug.hh:860
Internal used sizes.
Definition d868uv_codeplug.hh:941
Some static limits for this element.
Definition dmr6x2uv_codeplug.hh:1013
static constexpr unsigned int dmrSystems()
Maximum number of DMR APRS systems.
Definition dmr6x2uv_codeplug.hh:1019
static constexpr unsigned int pathLength()
Maximum length of the repeater path string.
Definition dmr6x2uv_codeplug.hh:1017
static constexpr unsigned int callLength()
Maximum length of call signs.
Definition dmr6x2uv_codeplug.hh:1015
Internal used offsets within the codeplug element.
Definition dmr6x2uv_codeplug.hh:1024
Background colors supported by the DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:35
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition dmr6x2uv_codeplug.cc:59
CodedColor
Encoding of the supported colors.
Definition dmr6x2uv_codeplug.hh:44
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition dmr6x2uv_codeplug.cc:49
Some limits of this element.
Definition dmr6x2uv_codeplug.hh:788
static constexpr unsigned int scanListIndices()
Maximum number of scan list indices.
Definition dmr6x2uv_codeplug.hh:790
Some internal used offsets.
Definition dmr6x2uv_codeplug.hh:850
Colors supported by the DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:20
CodedColor
Encoding of the supported colors.
Definition dmr6x2uv_codeplug.hh:29
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition dmr6x2uv_codeplug.cc:30
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition dmr6x2uv_codeplug.cc:14
Some limits for entries.
Definition dmr6x2uv_codeplug.hh:620
static constexpr TimeRange autoRoamDelay()
Auto-roaming delay limits.
Definition dmr6x2uv_codeplug.hh:634
static constexpr IntRange repRangeReminder()
Out of range reminder count limits.
Definition dmr6x2uv_codeplug.hh:622
static constexpr TimeRange autoRoamingInterval()
Auto-roaming interval limits.
Definition dmr6x2uv_codeplug.hh:630
static constexpr IntRange repeaterReconnections()
Repeater reconnection count limits.
Definition dmr6x2uv_codeplug.hh:628
static constexpr TimeRange muteTimer()
Mute-timer limits.
Definition dmr6x2uv_codeplug.hh:638
static constexpr TimeRange rangeCheckInterval()
Repeater range check interval limits.
Definition dmr6x2uv_codeplug.hh:624
Some internal offset within the codeplug element.
Definition dmr6x2uv_codeplug.hh:645
Font colors supported by the DMR-6X2UV.
Definition dmr6x2uv_codeplug.hh:50
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition dmr6x2uv_codeplug.cc:72
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition dmr6x2uv_codeplug.cc:88
CodedColor
Encoding of the supported colors.
Definition dmr6x2uv_codeplug.hh:59
Device specific encoding of the key functions.
Definition dmr6x2uv_codeplug.hh:76
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition dmr6x2uv_codeplug.cc:108
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition dmr6x2uv_codeplug.cc:165
KeyFunctionCode
Device specific key functions.
Definition dmr6x2uv_codeplug.hh:85
Some internal used offsets within the element.
Definition dmr6x2uv_codeplug.hh:430
Some limits for the codeplug.
Definition dmr6x2uv_codeplug.hh:1141
static constexpr unsigned int fmAPRSMessage()
Maximum length of the FM APRS message.
Definition dmr6x2uv_codeplug.hh:1143
static constexpr unsigned int roamingChannels()
Maximum number of roaming channels.
Definition dmr6x2uv_codeplug.hh:1145
static constexpr unsigned int roamingZones()
Maximum number of roaming zones.
Definition dmr6x2uv_codeplug.hh:1147
static constexpr unsigned int aesEncryptionKeys()
Maximum number of AES encryption keys.
Definition dmr6x2uv_codeplug.hh:1149
static constexpr unsigned int arc4EncryptionKeys()
Maximum number of ARC4 encryption keys.
Definition dmr6x2uv_codeplug.hh:1151
Some internal used offsets within the codeplug.
Definition dmr6x2uv_codeplug.hh:1156
Some internal used sizes.
Definition dmr6x2uv_codeplug.hh:1174
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13