libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
d868uv_codeplug.hh
1#ifndef D868UV_CODEPLUG_HH
2#define D868UV_CODEPLUG_HH
3
4#include <QDateTime>
5
6#include "anytone_codeplug.hh"
7
8class Channel;
9class DMRContact;
10class Zone;
11class RXGroupList;
12class ScanList;
13class DMRAPRSSystem;
14
15
37{
38 Q_OBJECT
39
40protected:
42 struct Color {
43 public:
45 static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
47 static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
48
49 protected:
51 typedef enum {
52 White = 0, Red=1
53 } CodedColor;
54 };
55
56
57public:
65 {
66 public:
68 enum class DMREncryptionType {
69 Basic = 0,
70 Enhanced = 1
71 };
72
74 enum class APRSType {
75 Off = 0, DMR = 1
76 };
77
78 protected:
80 ChannelElement(uint8_t *ptr, unsigned size);
81
82 public:
84 ChannelElement(uint8_t *ptr);
85
87 virtual bool ranging() const;
89 virtual void enableRanging(bool enable);
91 virtual bool throughMode() const;
93 virtual void enableThroughMode(bool enable);
95 virtual bool dataACK() const;
97 virtual void enableDataACK(bool enable);
98
100 APRSType txAPRSType() const;
102 void setTXAPRSType(APRSType aprsType);
104 virtual unsigned digitalAPRSSystemIndex() const;
106 virtual void setDigitalAPRSSystemIndex(unsigned idx);
107
109 virtual DMREncryptionType dmrEncryptionType() const;
111 virtual void setDMREncryptionType(DMREncryptionType type);
113 virtual bool hasDMREncryptionKeyIndex() const;
115 virtual unsigned dmrEncryptionKeyIndex() const;
117 virtual void setDMREncryptionKeyIndex(unsigned idx);
119 virtual void clearDMREncryptionKeyIndex();
120
122 virtual bool multipleKeyEncryption() const;
124 virtual void enableMultipleKeyEncryption(bool enable);
126 virtual bool randomKey() const;
128 virtual void enableRandomKey(bool enable);
130 virtual bool sms() const;
132 virtual void enableSMS(bool enable);
133
135 virtual Channel *toChannelObj(Context &ctx) const;
137 virtual bool linkChannelObj(Channel *c, Context &ctx) const;
139 virtual bool fromChannelObj(const Channel *c, Context &ctx);
140
141 protected:
145 static Bit dmrEncryptionType() { return {0x0021, 6}; }
146 static unsigned int dmrEncryptionKey() { return 0x0022; }
147 static Bit ranging() { return {0x0034, 0}; }
148 static Bit throughMode() { return {0x0034, 1}; }
149 static Bit dataACK() { return {0x0034, 2}; }
150 static unsigned int txAPRSType() { return 0x0035; }
151 static unsigned int digitalAPRSSystemIndex() { return 0x0036; }
152 static Bit multipleKeyEncryption() { return {0x003b, 0}; }
153 static Bit randomKey() { return {0x003b, 1}; }
154 static Bit sms() { return {0x003b, 2}; }
156 };
157 };
158
168 {
169 protected:
171 struct KeyFunction {
172 public:
177
178 protected:
180 typedef enum {
181 Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
182 Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
183 Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
184 Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
185 HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
186 WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
187 PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
188 ChannelType = 0x22, Ranging = 0x23, ChannelRanging = 0x24, MaxVolume = 0x25, Slot = 0x26
190 };
191
193 enum class BacklightDuration {
194 Infinite = 0, _5s = 1, _10s = 2, _15s = 3, _20s = 4, _25s = 5, _30s = 6, _1min=7, _2min=8,
195 _3min = 9, _4min = 10, _5min = 11
196 };
197
198 protected:
200 GeneralSettingsElement(uint8_t *ptr, unsigned size);
201
202 public:
204 GeneralSettingsElement(uint8_t *ptr);
205
207 static constexpr unsigned int size() { return 0x00d0; }
208
210 void clear();
211
213 virtual AnytonePowerSaveSettingsExtension::PowerSave powerSave() const;
215 virtual void setPowerSave(AnytonePowerSaveSettingsExtension::PowerSave mode);
216
218 virtual Level voxLevel() const;
220 virtual void setVOXLevel(Level level);
222 virtual Interval voxDelay() const;
224 virtual void setVOXDelay(Interval ms);
229 Level dmrMicGain() const;
230 void setDMRMicGain(Level gain);
231 unsigned maxSpeakerVolume() const;
232 void setMaxSpeakerVolume(unsigned level);
234 virtual unsigned maxHeadPhoneVolume() const;
236 virtual void setMaxHeadPhoneVolume(unsigned max);
237 bool enhanceAudio() const;
238 void enableEnhancedAudio(bool enable);
239 bool recording() const;
240 void enableRecording(bool enable);
242 virtual unsigned recordingDelay() const;
244 virtual void setRecodringDelay(unsigned ms);
245
246
257
280
281 bool vfoModeA() const;
282 void enableVFOModeA(bool enable);
283 bool vfoModeB() const;
284 void enableVFOModeB(bool enable);
285
286 unsigned memoryZoneA() const;
287 void setMemoryZoneA(unsigned zone);
288 unsigned memoryZoneB() const;
289 void setMemoryZoneB(unsigned zone);
290
291 bool gps() const;
292 void enableGPS(bool enable);
293 QTimeZone gpsTimeZone() const;
294 void setGPSTimeZone(const QTimeZone &zone);
295 bool getGPSPosition() const;
296 void enableGetGPSPosition(bool enable);
297 bool gpsUnitsImperial() const ;
298 void enableGPSUnitsImperial(bool enable);
300 virtual Interval gpsUpdatePeriod() const;
302 virtual void setGPSUpdatePeriod(Interval sec);
303
304 bool keyToneEnabled() const;
305 void enableKeyTone(bool enable);
306 bool smsAlert() const;
307 void enableSMSAlert(bool enable);
308 bool callAlert() const;
309 void enableCallAlert(bool enable);
310 bool dmrTalkPermit() const;
311 void enableDMRTalkPermit(bool enable);
312 bool fmTalkPermit() const;
313 void enableFMTalkPermit(bool enable);
314 bool dmrResetTone() const;
315 void enableDMRResetTone(bool enable);
316 bool idleChannelTone() const;
317 void enableIdleChannelTone(bool enable);
318 bool startupTone() const;
319 void enableStartupTone(bool enable);
320 void callToneMelody(Melody &melody) const;
321 void setCallToneMelody(const Melody &melody);
322 void idleToneMelody(Melody &melody) const;
323 void setIdleToneMelody(const Melody &melody);
324 void resetToneMelody(Melody &melody) const;
325 void setResetToneMelody(const Melody &melody);
326
327 bool activeChannelB() const;
328 void enableActiveChannelB(bool enable);
329
330 bool subChannel() const;
331 void enableSubChannel(bool enable);
332
333 Interval menuExitTime() const;
334 void setMenuExitTime(Interval intv);
335
336 bool callEndPrompt() const;
337 void enableCallEndPrompt(bool enable);
338 bool volumeChangePrompt() const;
339 void enableVolumeChangePrompt(bool enable);
340 AnytoneDisplaySettingsExtension::LastCallerDisplayMode lastCallerDisplayMode() const;
341 void setLastCallerDisplayMode(AnytoneDisplaySettingsExtension::LastCallerDisplayMode mode);
342 bool displayClock() const;
343 void enableDisplayClock(bool enable);
344 bool displayCall() const;
345 void enableDisplayCall(bool enable);
346 AnytoneDisplaySettingsExtension::Color callDisplayColor() const;
347 void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color);
348 bool showLastHeard() const;
349 void enableShowLastHeard(bool enable);
350 unsigned brightness() const;
351 void setBrightness(unsigned level);
353 virtual bool backlightPermanent() const;
355 virtual Interval backlightDuration() const;
357 virtual void setBacklightDuration(Interval sec);
359 virtual void enableBacklightPermanent();
360
367 void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx);
371 void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx);
381
382 bool showCurrentContact() const;
383 void enableShowCurrentContact(bool enable);
384
386 virtual bool keyToneLevelAdjustable() const;
388 virtual unsigned keyToneLevel() const;
390 virtual void setKeyToneLevel(unsigned level);
392 virtual void setKeyToneLevelAdjustable();
393
394 bool knobLock() const;
395 void enableKnobLock(bool enable);
396 bool keypadLock() const;
397 void enableKeypadLock(bool enable);
398 bool sidekeysLock() const;
399 void enableSidekeysLock(bool enable);
400 bool keyLockForced() const;
401 void enableKeyLockForced(bool enable);
402
403 bool defaultChannel() const;
404 void enableDefaultChannel(bool enable);
405 unsigned defaultZoneIndexA() const;
406 void setDefaultZoneIndexA(unsigned idx);
407 unsigned defaultZoneIndexB() const;
408 void setDefaultZoneIndexB(unsigned idx);
409 bool defaultChannelAIsVFO() const;
410 unsigned defaultChannelAIndex() const;
411 void setDefaultChannelAIndex(unsigned idx);
413 bool defaultChannelBIsVFO() const;
414 unsigned defaultChannelBIndex() const;
415 void setDefaultChannelBIndex(unsigned idx);
417
418 bool keepLastCaller() const;
419 void enableKeepLastCaller(bool enable);
420
421 bool fromConfig(const Flags &flags, Context &ctx);
422 bool updateConfig(Context &ctx);
423 bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack());
424
425 public:
427 struct Limit: Element::Limit {
429 static constexpr Range<unsigned int> vox() { return {1,3}; }
431 static constexpr Range<unsigned int> micGain() { return {0,4}; }
432 };
433
434 protected:
438 static constexpr unsigned int enableKeyTone() { return 0x0000; }
439 static constexpr unsigned int powerSaveMode() { return 0x000b; }
440 static constexpr unsigned int voxLevel() { return 0x000c; }
441 static constexpr unsigned int voxDelay() { return 0x000d; }
442 static constexpr unsigned int vfoScanType() { return 0x000e; }
443 static constexpr unsigned int dmrMicGain() { return 0x000f; }
444 static constexpr unsigned int progFuncKeyAShort() { return 0x0010; }
445 static constexpr unsigned int progFuncKeyBShort() { return 0x0011; }
446 static constexpr unsigned int progFuncKeyCShort() { return 0x0012; }
447 static constexpr unsigned int progFuncKey1Short() { return 0x0013; }
448 static constexpr unsigned int progFuncKey2Short() { return 0x0014; }
449 static constexpr unsigned int vfoModeA() { return 0x0015; }
450 static constexpr unsigned int vfoModeB() { return 0x0016; }
451 static constexpr unsigned int memZoneA() { return 0x001f; }
452 static constexpr unsigned int memZoneB() { return 0x0020; }
453 static constexpr unsigned int enableRecoding() { return 0x0022; }
454 static constexpr unsigned int displayBrightness() { return 0x0026; }
455 static constexpr unsigned int backlightDuration() { return 0x0027; }
456 static constexpr unsigned int gpsEnable() { return 0x0028; }
457 static constexpr unsigned int smsAlert() { return 0x0029; }
458 static constexpr unsigned int activeChannelB() { return 0x002c; }
459 static constexpr unsigned int subChannel() { return 0x002d; }
460 static constexpr unsigned int callAlert() { return 0x002f; }
461 static constexpr unsigned int gpsTimeZone() { return 0x0030; }
462 static constexpr unsigned int talkPermit() { return 0x0031; }
463 static constexpr unsigned int dmrResetTone() { return 0x0032; }
464 static constexpr unsigned int voxSource() { return 0x0033; }
465 static constexpr unsigned int idleChannelTone() { return 0x0036; }
466 static constexpr unsigned int menuExitTime() { return 0x0037; }
467 static constexpr unsigned int startupTone() { return 0x0039; }
468 static constexpr unsigned int callEndPrompt() { return 0x003a; }
469 static constexpr unsigned int maxSpeakerVolume() { return 0x003b; }
470 static constexpr unsigned int getGPSPosition() { return 0x003f; }
471 static constexpr unsigned int progFuncKeyALong() { return 0x0041; }
472 static constexpr unsigned int progFuncKeyBLong() { return 0x0042; }
473 static constexpr unsigned int progFuncKeyCLong() { return 0x0043; }
474 static constexpr unsigned int progFuncKey1Long() { return 0x0044; }
475 static constexpr unsigned int progFuncKey2Long() { return 0x0045; }
476 static constexpr unsigned int longPressDuration() { return 0x0046; }
477 static constexpr unsigned int volumeChangePrompt(){ return 0x0047; }
478 static constexpr unsigned int autoRepeaterDirA() { return 0x0048; }
479 static constexpr unsigned int lastCallerDisplay() { return 0x004d; }
480 static constexpr unsigned int showClock() { return 0x0051; }
481 static constexpr unsigned int maxHeadPhoneVolume(){ return 0x0052; }
482 static constexpr unsigned int enhanceAudio() { return 0x0057; }
483 static constexpr unsigned int minVFOScanUHF() { return 0x0058; }
484 static constexpr unsigned int maxVFOScanUHF() { return 0x005c; }
485 static constexpr unsigned int minVFOScanVHF() { return 0x0060; }
486 static constexpr unsigned int maxVFOScanVHF() { return 0x0064; }
487 static constexpr unsigned int autoRepOffsetUHF() { return 0x0068; }
488 static constexpr unsigned int autoRepOffsetVHF() { return 0x0069; }
489 static constexpr unsigned int callToneTones() { return 0x0072; }
490 static constexpr unsigned int callToneDurations() { return 0x007c; }
491 static constexpr unsigned int idleToneTones() { return 0x0086; }
492 static constexpr unsigned int idleToneDurations() { return 0x0090; }
493 static constexpr unsigned int resetToneTones() { return 0x009a; }
494 static constexpr unsigned int resetToneDurations(){ return 0x00a4; }
495 static constexpr unsigned int recordingDelay() { return 0x00ae; }
496 static constexpr unsigned int callDisplayMode() { return 0x00af; }
497 static constexpr unsigned int callColor() { return 0x00b0; }
498 static constexpr unsigned int gpsPeriod() { return 0x00b1; }
499 static constexpr unsigned int showCurrentContact(){ return 0x00b2; }
500 static constexpr unsigned int keyToneLevel() { return 0x00b3; }
501 static constexpr unsigned int gpsUnits() { return 0x00b4; }
502 static constexpr unsigned int knobLock() { return 0x00b5; }
503 static constexpr unsigned int keypadLock() { return 0x00b5; }
504 static constexpr unsigned int sideKeyLock() { return 0x00b5; }
505 static constexpr unsigned int forceKeyLock() { return 0x00b5; }
506 static constexpr unsigned int showLastHeard() { return 0x00b6; }
507 static constexpr unsigned int autoRepMinVHF() { return 0x00b8; }
508 static constexpr unsigned int autoRepMaxVHF() { return 0x00bc; }
509 static constexpr unsigned int autoRepMinUHF() { return 0x00c0; }
510 static constexpr unsigned int autoRepMaxUHF() { return 0x00c4; }
511 static constexpr unsigned int autoRepeaterDirB() { return 0x00c8; }
512 static constexpr unsigned int defaultChannels() { return 0x00ca; }
513 static constexpr unsigned int defaultZoneA() { return 0x00cb; }
514 static constexpr unsigned int defaultZoneB() { return 0x00cc; }
515 static constexpr unsigned int defaultChannelA() { return 0x00cd; }
516 static constexpr unsigned int defaultChannelB() { return 0x00ce; }
517 static constexpr unsigned int keepLastCaller() { return 0x00cf; }
519 };
520 };
521
522protected:
524 explicit D868UVCodeplug(const QString &label, QObject *parent = nullptr);
525
526public:
528 explicit D868UVCodeplug(QObject *parent = nullptr);
529
530 Config* preprocess(Config *config, const ErrorStack &err) const;
531
532protected:
533 bool allocateBitmaps();
534 virtual void setBitmaps(Context &ctx);
535 virtual void allocateUpdated();
536 virtual void allocateForDecoding();
537 virtual void allocateForEncoding();
538
539 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
540 virtual bool createElements(Context &ctx, const ErrorStack &err=ErrorStack());
541 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
542
544 virtual void allocateChannels();
546 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
548 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
550 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
551
553 virtual void allocateVFOSettings();
554
556 virtual void allocateContacts();
558 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
560 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack());
561
563 virtual void allocateAnalogContacts();
565 virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
567 virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack());
568
570 virtual void allocateRadioIDs();
572 virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
574 virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack());
575
577 virtual void allocateRXGroupLists();
579 virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
581 virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
583 virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
584
586 virtual void allocateZones();
588 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
590 virtual bool encodeZone(int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
592 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack());
594 virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
596 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
598 virtual bool linkZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack());
599
601 virtual void allocateScanLists();
603 virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
605 virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
607 virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
608
610 virtual void allocateGeneralSettings();
612 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
614 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
616 virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
617
619 virtual void allocateZoneChannelList();
620
622 virtual void allocateDTMFNumbers();
623
625 virtual void allocateBootSettings();
627 virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
629 virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack());
630
632 virtual void allocateGPSSystems();
634 virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
636 virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
638 virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
639
641 virtual void allocateSMSMessages();
643 virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
645 virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
647 virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
648
649
651 virtual void allocateHotKeySettings();
652
656 virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
658 virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack());
659
661 virtual void allocatDMREncryptionKeys();
663 virtual bool encodeDMREncryptionKeys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
665 virtual bool decodeDMREncryptionKeys(Context &ctx, const ErrorStack &err=ErrorStack());
666
668 virtual void allocatEnhancedEncryptionKeys();
669
671 virtual void allocateAlarmSettings();
673 virtual void allocateFMBroadcastSettings();
674
676 virtual void allocate5ToneIDs();
678 virtual void allocate5ToneFunctions();
680 virtual void allocate5ToneSettings();
681
683 virtual void allocate2ToneIDs();
685 virtual void allocate2ToneFunctions();
687 virtual void allocate2ToneSettings();
688
690 virtual void allocateDTMFSettings();
691
692public:
694 struct Limit {
695 static constexpr unsigned int channelsPerBank() { return 128; }
696 static constexpr unsigned int numChannels() { return 4000; }
697 static constexpr unsigned int contactsPerBank() { return 1000; }
698 static constexpr unsigned int contactsPerBlock() { return 4; }
699 static constexpr unsigned int numContacts() { return 10000; }
700 static constexpr unsigned int numDTMFContacts() { return 128; }
701 static constexpr unsigned int numGroupLists() { return 250; }
702 static constexpr unsigned int numScanLists() { return 250; }
703 static constexpr unsigned int numScanListsPerBank() { return 16; }
704 static constexpr unsigned int numRadioIDs() { return 250; }
705 // There is no zone element -> hence all attributes must be defied within the codeplug.
706 static constexpr unsigned int numZones() { return 250; }
707 static constexpr unsigned int numChannelsPerZone() { return 250; }
708 static constexpr unsigned int zoneNameLength() { return 16; }
709 static constexpr unsigned int dmrAPRSSystems() { return 8; }
710 static constexpr unsigned int numMessages() { return 100; }
711 static constexpr unsigned int numMessagePerBank() { return 8; }
712 static constexpr unsigned int numTwoToneIDs() { return 24; }
713 static constexpr unsigned int numTwoToneFunctions() { return 16; }
714 };
715
716protected:
718 struct Offset {
720 static constexpr unsigned int channelBitmap() { return 0x024c1500; }
721 static constexpr unsigned int channelBanks() { return 0x00800000; }
722 static constexpr unsigned int betweenChannelBanks() { return 0x00040000; }
723 static constexpr unsigned int vfoA() { return 0x00fc0800; }
724 static constexpr unsigned int vfoB() { return 0x00fc0840; }
725
726 static constexpr unsigned int contactBitmap() { return 0x02640000; }
727 static constexpr unsigned int contactBanks() { return 0x02680000; }
728 static constexpr unsigned int betweenContactBanks() { return 0x00040000; }
729 static constexpr unsigned int betweenContactBlocks() { return 0x00000190; }
730 static constexpr unsigned int contactIndex() { return 0x02600000; }
731 static constexpr unsigned int contactIdTable() { return 0x04340000; }
732
733 static constexpr unsigned int dtmfContactBytemap() { return 0x02900100; }
734 static constexpr unsigned int dtmfContacts() { return 0x02940000; }
735 static constexpr unsigned int dtmfIndex() { return 0x02900000; }
736 static constexpr unsigned int dtmfSettings() { return 0x024C1080; }
737 static constexpr unsigned int dtmfIDList() { return 0x02500500; }
738
739 static constexpr unsigned int groupListBitmap() { return 0x025C0B10; }
740 static constexpr unsigned int groupLists() { return 0x02980000; }
741 static constexpr unsigned int betweenGroupLists() { return 0x00000200; }
742
743 static constexpr unsigned int scanListBitmap() { return 0x024c1340; }
744 static constexpr unsigned int scanListBanks() { return 0x01080000; }
745 static constexpr unsigned int betweenScanLists() { return 0x00000200; }
746 static constexpr unsigned int betweenScanListBanks() { return 0x00040000; }
747
748 static constexpr unsigned int radioIDBitmap() { return 0x024c1320; }
749 static constexpr unsigned int radioIDs() { return 0x02580000; }
750
751 static constexpr unsigned int settings() { return 0x02500000; }
752 static constexpr unsigned int zoneChannelList() { return 0x02500100; }
753 static constexpr unsigned int bootSettings() { return 0x02500600; }
754 static constexpr unsigned int aprsSettings() { return 0x02501000; }
755 static constexpr unsigned int dmrAPRSMessage() { return 0x02501100; }
756 static constexpr unsigned int offsetFrequencies() { return 0x024C2000; }
757
758 static constexpr unsigned int zoneBitmap() { return 0x024c1300; }
759 static constexpr unsigned int zoneChannels() { return 0x01000000; }
760 static constexpr unsigned int betweenZoneChannels() { return 0x00000200; }
761 static constexpr unsigned int zoneNames() { return 0x02540000; }
762 static constexpr unsigned int betweenZoneNames() { return 0x00000020; }
763
764 static constexpr unsigned int messageBytemap() { return 0x01640800; }
765 static constexpr unsigned int messageBanks() { return 0x02140000; }
766 static constexpr unsigned int betweenMessageBanks() { return 0x00040000; }
767 static constexpr unsigned int messageIndex() { return 0x01640000; }
768
769 static constexpr unsigned int analogQuickCall() { return 0x025C0000; }
770 static constexpr unsigned int statusMessageBitmap() { return 0x025C0B00; }
771 static constexpr unsigned int statusMessages() { return 0x025C0100; }
772 static constexpr unsigned int hotKeySettings() { return 0x025C0500; }
773
774 static constexpr unsigned int alarmSettings() { return 0x024C1400; }
775 static constexpr unsigned int alarmSettingsExtension() { return 0x024c1440; }
776
777 static constexpr unsigned int fiveToneIdBitmap() { return 0x024C0C80; }
778 static constexpr unsigned int fiveToneIdList() { return 0x024C0000; }
779 static constexpr unsigned int fiveToneFunctions() { return 0x024C0D00; }
780 static constexpr unsigned int fiveToneSettings() { return 0x024C1000; }
781
782 static constexpr unsigned int twoToneIdBitmap() { return 0x024C1280; }
783 static constexpr unsigned int twoToneIdList() { return 0x024C1100; }
784 static constexpr unsigned int twoToneFunctionBitmap(){ return 0x024c2600; }
785 static constexpr unsigned int twoToneFunctionList() { return 0x024c2400; }
786 static constexpr unsigned int twoToneSettings() { return 0x024C1290; }
787
788 static constexpr unsigned int wfmChannelBitmap() { return 0x02480210; }
789 static constexpr unsigned int wfmChannels() { return 0x02480000; }
790 static constexpr unsigned int wfmVFO() { return 0x02480200; }
791
792 static constexpr unsigned int dmrEncryptionKeys() { return 0x024C1700; }
793 static constexpr unsigned int enhancedEncryptionKeys() { return 0x024C1800; }
795 };
796
799 struct Size {
801 static constexpr unsigned int zoneName() { return 0x0020; }
802 static constexpr unsigned int zoneChannels() { return 0x0200; }
803 static constexpr unsigned int messageBank() { return 0x0800; }
804 static constexpr unsigned int messageIndex() { return 0x0010; }
806 };
807};
808
809#endif // D868UVCODEPLUG_HH
VoxSource
Source for the VOX.
Definition anytone_settingsextension.hh:919
Direction
Encodes the auto-repeater offset sign.
Definition anytone_settingsextension.hh:1188
Represents the base class for channel encodings in all AnyTone codeplugs.
Definition anytone_codeplug.hh:69
Represents the base class for the settings elements in all AnyTone codeplugs.
Definition anytone_codeplug.hh:886
AnytoneCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor.
Definition anytone_codeplug.cc:4406
KeyFunction
All possible key functions.
Definition anytone_settingsextension.hh:267
VFOScanType
Encodes the possible VFO scan types.
Definition anytone_settingsextension.hh:2126
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Base class for all codeplug contexts.
Definition codeplug.hh:331
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
The config class, representing the codeplug configuration.
Definition config.hh:70
virtual void enableThroughMode(bool enable)
Enables/disables though mode.
Definition d868uv_codeplug.cc:78
virtual bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition d868uv_codeplug.cc:185
ChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition d868uv_codeplug.cc:51
virtual void enableSMS(bool enable)
Enables/disables SMS.
Definition d868uv_codeplug.cc:161
APRSType
Possible APRS modes.
Definition d868uv_codeplug.hh:74
virtual unsigned dmrEncryptionKeyIndex() const
Returns the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:127
virtual DMREncryptionType dmrEncryptionType() const
Returns the encryption type.
Definition d868uv_codeplug.cc:111
virtual bool multipleKeyEncryption() const
Returns true if multiple key encryption is enabled.
Definition d868uv_codeplug.cc:140
virtual bool throughMode() const
Returns true if through mode is enabled.
Definition d868uv_codeplug.cc:74
virtual bool randomKey() const
Returns true if random key is enabled.
Definition d868uv_codeplug.cc:149
virtual bool sms() const
Returns true if SMS is enabled.
Definition d868uv_codeplug.cc:157
virtual bool fromChannelObj(const Channel *c, Context &ctx)
Initializes this codeplug channel from the given generic configuration.
Definition d868uv_codeplug.cc:214
virtual Channel * toChannelObj(Context &ctx) const
Constructs a generic Channel object from the codeplug channel.
Definition d868uv_codeplug.cc:166
APRSType txAPRSType() const
Returns APRS type for reporting the position.
Definition d868uv_codeplug.cc:92
void setTXAPRSType(APRSType aprsType)
Sets APRS type for reporting the position.
Definition d868uv_codeplug.cc:96
virtual bool hasDMREncryptionKeyIndex() const
Returns true if a DMR encryption key is set.
Definition d868uv_codeplug.cc:123
virtual void setDMREncryptionKeyIndex(unsigned idx)
Sets the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:131
DMREncryptionType
Possible encryption types.
Definition d868uv_codeplug.hh:68
virtual void enableRanging(bool enable)
Enables/disables ranging.
Definition d868uv_codeplug.cc:69
virtual void setDigitalAPRSSystemIndex(unsigned idx)
Sets the DMR APRS system index.
Definition d868uv_codeplug.cc:105
virtual unsigned digitalAPRSSystemIndex() const
Returns the DMR APRS system index.
Definition d868uv_codeplug.cc:101
virtual void enableDataACK(bool enable)
Enables/disables data ACK.
Definition d868uv_codeplug.cc:87
virtual bool ranging() const
Returns true if ranging is enabled.
Definition d868uv_codeplug.cc:65
virtual void clearDMREncryptionKeyIndex()
Clears the DMR encryption key index.
Definition d868uv_codeplug.cc:135
virtual void setDMREncryptionType(DMREncryptionType type)
Sets the encryption type.
Definition d868uv_codeplug.cc:117
virtual void enableRandomKey(bool enable)
Enables/disables random key.
Definition d868uv_codeplug.cc:153
virtual void enableMultipleKeyEncryption(bool enable)
Enables/disables multiple key encryption.
Definition d868uv_codeplug.cc:144
virtual bool dataACK() const
Returns true if data ACK is enabled.
Definition d868uv_codeplug.cc:83
void enableIdleChannelTone(bool enable)
Enables/disables the idle channel tone.
Definition d868uv_codeplug.cc:735
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition d868uv_codeplug.cc:1032
bool subChannel() const
Returns true if sub channel is enabled.
Definition d868uv_codeplug.cc:667
void enableGetGPSPosition(bool enable)
Enables/disables get GPS position.
Definition d868uv_codeplug.cc:780
Frequency minVFOScanFrequencyVHF() const
Returns the minimum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:857
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition d868uv_codeplug.cc:1196
virtual void setRecodringDelay(unsigned ms)
Sets the recording delay in ms.
Definition d868uv_codeplug.cc:973
virtual bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition d868uv_codeplug.cc:1015
Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:1083
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition d868uv_codeplug.cc:1153
void setAutoRepeaterDirectionA(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater offset direction for VFO A.
Definition d868uv_codeplug.cc:798
virtual void setVOXLevel(Level level)
Sets the VOX level.
Definition d868uv_codeplug.cc:396
Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:1091
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition d868uv_codeplug.cc:1074
void setMaxVFOScanFrequencyVHF(Frequency hz)
Sets the maximum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:870
virtual void setMaxHeadPhoneVolume(unsigned max)
Sets the maximum headphone volume.
Definition d868uv_codeplug.cc:825
void setResetToneMelody(const Melody &melody)
Sets the reset-tone melody.
Definition d868uv_codeplug.cc:959
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const
Returns the key function for a short press on the function key 2/B.
Definition d868uv_codeplug.cc:437
bool knobLock() const
Returns true if the knob is locked.
Definition d868uv_codeplug.cc:1041
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1/A.
Definition d868uv_codeplug.cc:432
void enableDisplayClock(bool enable)
Enables/disables clock display.
Definition d868uv_codeplug.cc:816
Interval menuExitTime() const
Returns the menu exit time in seconds.
Definition d868uv_codeplug.cc:740
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition d868uv_codeplug.cc:1191
bool startupTone() const
Returns true if the startup tone is enabled.
Definition d868uv_codeplug.cc:749
bool hasAutoRepeaterOffsetFrequencyIndexUHF() const
Returns true if the auto-repeater offset frequency for UHF is set.
Definition d868uv_codeplug.cc:875
virtual void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition d868uv_codeplug.cc:1023
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition d868uv_codeplug.cc:1148
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition d868uv_codeplug.cc:1170
void enableFMTalkPermit(bool enable)
Enables/disables the talk permit tone for analog channels.
Definition d868uv_codeplug.cc:708
bool dmrResetTone() const
Returns true if the reset tone is enabled for digital calls.
Definition d868uv_codeplug.cc:713
void setMaxSpeakerVolume(unsigned level)
Sets the maximum volume.
Definition d868uv_codeplug.cc:771
AnytoneDisplaySettingsExtension::Color callDisplayColor() const
Returns the display color for callsigns.
Definition d868uv_codeplug.cc:988
void enableSMSAlert(bool enable)
Enables/disables SMS alert.
Definition d868uv_codeplug.cc:653
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition d868uv_codeplug.cc:1069
virtual void setVOXDelay(Interval ms)
Sets the VOX delay in ms.
Definition d868uv_codeplug.cc:405
AnytoneDisplaySettingsExtension::LastCallerDisplayMode lastCallerDisplayMode() const
Returns the last-caller display mode.
Definition d868uv_codeplug.cc:803
bool keypadLock() const
Returns true if the keypad is locked.
Definition d868uv_codeplug.cc:1049
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition d868uv_codeplug.cc:1161
void setMemoryZoneA(unsigned zone)
Sets the memory zone for VFO A.
Definition d868uv_codeplug.cc:549
bool displayClock() const
Returns true if the clock is shown.
Definition d868uv_codeplug.cc:812
bool getGPSPosition() const
Returns true if get GPS position is enabled.
Definition d868uv_codeplug.cc:776
void enableCallAlert(bool enable)
Enables/disables call alert.
Definition d868uv_codeplug.cc:680
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 3/C.
Definition d868uv_codeplug.cc:450
void enableDefaultChannel(bool enable)
Enables/disables default boot channel.
Definition d868uv_codeplug.cc:1130
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition d868uv_codeplug.cc:1006
BacklightDuration
Possible backlight duration values.
Definition d868uv_codeplug.hh:193
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1112
virtual unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition d868uv_codeplug.cc:1019
virtual Interval gpsUpdatePeriod() const
Returns the GPS update period in seconds.
Definition d868uv_codeplug.cc:997
virtual void enableBacklightPermanent()
Sets the backlight to permanent (always on).
Definition d868uv_codeplug.cc:634
bool activeChannelB() const
Returns true if the active channel is VFO B.
Definition d868uv_codeplug.cc:658
Level dmrMicGain() const
Returns the mirophone gain.
Definition d868uv_codeplug.cc:419
void enableRecording(bool enable)
Enables/disables recording.
Definition d868uv_codeplug.cc:567
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition d868uv_codeplug.cc:464
virtual Level voxLevel() const
Returns the VOX level.
Definition d868uv_codeplug.cc:392
void enableGPS(bool enable)
Enables/disables recording.
Definition d868uv_codeplug.cc:644
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const
Returns the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:482
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:486
bool sidekeysLock() const
Returns true if the sidekeys are locked.
Definition d868uv_codeplug.cc:1057
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition d868uv_codeplug.cc:1078
void enableVolumeChangePrompt(bool enable)
Enables/disables the volume change prompt.
Definition d868uv_codeplug.cc:789
static constexpr unsigned int size()
Returns the size of the element.
Definition d868uv_codeplug.hh:207
void resetToneMelody(Melody &melody) const
Returns the reset-tone melody.
Definition d868uv_codeplug.cc:949
void setIdleToneMelody(const Melody &melody)
Sets the idle-tone melody.
Definition d868uv_codeplug.cc:939
virtual void setPowerSave(AnytonePowerSaveSettingsExtension::PowerSave mode)
Sets the power-save mode.
Definition d868uv_codeplug.cc:387
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 3.
Definition d868uv_codeplug.cc:495
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const
Returns the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:473
Frequency minVFOScanFrequencyUHF() const
Returns the minimum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:839
virtual AnytoneAudioSettingsExtension::VoxSource voxSource() const
Returns the VOX source.
Definition d868uv_codeplug.cc:722
void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color)
Sets the display color for callsigns.
Definition d868uv_codeplug.cc:992
bool callEndPrompt() const
Returns true if the call-end prompt is enabled.
Definition d868uv_codeplug.cc:758
void clearAutoRepeaterOffsetFrequencyIndexVHF()
Clears the auto-repeater offset frequency index for VHF.
Definition d868uv_codeplug.cc:904
bool recording() const
Returns true if recording is enabled.
Definition d868uv_codeplug.cc:563
void enableVFOModeA(bool enable)
Enables/disables VFO mode for VFO A.
Definition d868uv_codeplug.cc:531
unsigned defaultChannelBIndex() const
Returns the default channel index for VFO B.
Definition d868uv_codeplug.cc:1174
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition d868uv_codeplug.cc:1053
virtual void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition d868uv_codeplug.cc:1027
virtual void setGPSUpdatePeriod(Interval sec)
Sets the GPS update period in seconds.
Definition d868uv_codeplug.cc:1001
void setVFOScanType(AnytoneSettingsExtension::VFOScanType type)
Sets the VFO scan type.
Definition d868uv_codeplug.cc:414
void enableDisplayCall(bool enable)
Enables/disables call display.
Definition d868uv_codeplug.cc:982
void setBrightness(unsigned level)
Sets the display brightness.
Definition d868uv_codeplug.cc:576
virtual void setBacklightDuration(Interval sec)
Sets the backlight duration in seconds.
Definition d868uv_codeplug.cc:606
bool idleChannelTone() const
Returns true if the idle channel tone is enabled.
Definition d868uv_codeplug.cc:731
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition d868uv_codeplug.cc:1165
void enableActiveChannelB(bool enable)
Enables/disables VFO B as the active channel.
Definition d868uv_codeplug.cc:662
unsigned memoryZoneA() const
Returns the memory zone for VFO A.
Definition d868uv_codeplug.cc:545
virtual AnytonePowerSaveSettingsExtension::PowerSave powerSave() const
Returns the power-save mode.
Definition d868uv_codeplug.cc:383
void setAutoRepeaterMaxFrequencyVHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:1095
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition d868uv_codeplug.cc:1240
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition d868uv_codeplug.cc:1182
void clear()
Resets the general settings.
Definition d868uv_codeplug.cc:369
unsigned defaultZoneIndexA() const
Returns the default zone index (0-based) for VFO A.
Definition d868uv_codeplug.cc:1135
bool callAlert() const
Returns true if call alert is enabled.
Definition d868uv_codeplug.cc:676
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:513
AnytoneSettingsExtension::VFOScanType vfoScanType() const
Returns the VFO scan type.
Definition d868uv_codeplug.cc:410
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1.
Definition d868uv_codeplug.cc:459
void setGPSTimeZone(const QTimeZone &zone)
Sets the GPS time zone.
Definition d868uv_codeplug.cc:689
unsigned autoRepeaterOffsetFrequencyIndexVHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:896
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition d868uv_codeplug.cc:356
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition d868uv_codeplug.cc:1126
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition d868uv_codeplug.cc:1144
Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1100
unsigned brightness() const
Returns the display brightness.
Definition d868uv_codeplug.cc:572
void idleToneMelody(Melody &melody) const
Returns the idle-tone melody.
Definition d868uv_codeplug.cc:929
bool hasAutoRepeaterOffsetFrequencyIndexVHF() const
Returns true if the auto-repeater offset frequency for VHF is set.
Definition d868uv_codeplug.cc:892
virtual unsigned recordingDelay() const
Returns the recording delay in ms.
Definition d868uv_codeplug.cc:969
Frequency maxVFOScanFrequencyVHF() const
Returns the maximum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:866
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionA() const
Returns the auto repeater offset direction for VFO A.
Definition d868uv_codeplug.cc:794
void setCallToneMelody(const Melody &melody)
Sets the call-tone melody.
Definition d868uv_codeplug.cc:919
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition d868uv_codeplug.cc:1061
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition d868uv_codeplug.cc:1036
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2/B.
Definition d868uv_codeplug.cc:441
void enableKeyTone(bool enable)
Enables/disables the key-tone.
Definition d868uv_codeplug.cc:378
bool volumeChangePrompt() const
Returns true if the volume change prompt is enabled.
Definition d868uv_codeplug.cc:785
bool displayCall() const
Returns true if the call is displayed instead of the name.
Definition d868uv_codeplug.cc:978
void callToneMelody(Melody &melody) const
Returns the call-tone melody.
Definition d868uv_codeplug.cc:909
void setMaxVFOScanFrequencyUHF(Frequency hz)
Sets the maximum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:852
virtual unsigned maxHeadPhoneVolume() const
Returns the maximum headphone volume.
Definition d868uv_codeplug.cc:821
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const
Returns the key function for a short press on the function key 1/A.
Definition d868uv_codeplug.cc:428
void enableVFOModeB(bool enable)
Enables/disables VFO mode for VFO B.
Definition d868uv_codeplug.cc:540
unsigned maxSpeakerVolume() const
Returns the maximum volume.
Definition d868uv_codeplug.cc:767
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition d868uv_codeplug.cc:1117
void enableStartupTone(bool enable)
Enables/disables the startup tone.
Definition d868uv_codeplug.cc:753
virtual Interval voxDelay() const
Returns the VOX delay in ms.
Definition d868uv_codeplug.cc:401
void setDefaultChannelBIndex(unsigned idx)
Sets the default channel index for VFO B.
Definition d868uv_codeplug.cc:1178
void enableCallEndPrompt(bool enable)
Enables/disables the call-end prompt.
Definition d868uv_codeplug.cc:762
void setLongPressDuration(Interval ms)
Sets the long-press duration in ms.
Definition d868uv_codeplug.cc:522
void enableDMRResetTone(bool enable)
Enables/disables the reset tone for digital calls.
Definition d868uv_codeplug.cc:717
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const
Returns the key function for a long press on the function key 3.
Definition d868uv_codeplug.cc:491
bool smsAlert() const
Returns true if SMS alert is enabled.
Definition d868uv_codeplug.cc:649
void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1104
void setMemoryZoneB(unsigned zone)
Sets the memory zone for VFO B.
Definition d868uv_codeplug.cc:558
void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater direction for VFO B.
Definition d868uv_codeplug.cc:1121
bool keyToneEnabled() const
Returns true, if the key tone is enabled.
Definition d868uv_codeplug.cc:374
void enableDMRTalkPermit(bool enable)
Enables/disables the talk permit tone for digital channels.
Definition d868uv_codeplug.cc:699
void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx)
Sets the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:883
Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1108
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:504
bool enhanceAudio() const
Returns true if the audio is "enhanced".
Definition d868uv_codeplug.cc:830
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition d868uv_codeplug.cc:1157
QTimeZone gpsTimeZone() const
Returns the GPS time zone.
Definition d868uv_codeplug.cc:685
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const
Returns the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:509
void setDMRMicGain(Level gain)
Sets the microphone gain.
Definition d868uv_codeplug.cc:423
unsigned memoryZoneB() const
Returns the memory zone for VFO B.
Definition d868uv_codeplug.cc:554
Frequency maxVFOScanFrequencyUHF() const
Returns the maximum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:848
void setMinVFOScanFrequencyVHF(Frequency hz)
Sets the minimum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:861
void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx)
Sets the auto-repeater offset frequency index for VHF.
Definition d868uv_codeplug.cc:900
bool vfoModeA() const
Returns true if the VFO A is in VFO mode.
Definition d868uv_codeplug.cc:527
bool dmrTalkPermit() const
Returns true if the talk permit tone is enabled for digital channels.
Definition d868uv_codeplug.cc:695
unsigned autoRepeaterOffsetFrequencyIndexUHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:879
void clearAutoRepeaterOffsetFrequencyIndexUHF()
Clears the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:887
bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack())
Links the general settings.
Definition d868uv_codeplug.cc:1284
virtual Interval backlightDuration() const
Returns the backlight duration in seconds.
Definition d868uv_codeplug.cc:587
virtual void setVOXSource(AnytoneAudioSettingsExtension::VoxSource source)
Sets the VOX source.
Definition d868uv_codeplug.cc:726
void enableEnhancedAudio(bool enable)
Enables/disables "enhanced" audio.
Definition d868uv_codeplug.cc:834
bool vfoModeB() const
Returns true if the VFO B is in VFO mode.
Definition d868uv_codeplug.cc:536
void enableKnobLock(bool enable)
Enables/disables the knob lock.
Definition d868uv_codeplug.cc:1045
bool gps() const
Returns true if GPS is enabled.
Definition d868uv_codeplug.cc:640
bool fmTalkPermit() const
Returns true if the talk permit tone is enabled for digital channels.
Definition d868uv_codeplug.cc:704
virtual bool backlightPermanent() const
Returns true if the backlight is always on.
Definition d868uv_codeplug.cc:582
void enableSubChannel(bool enable)
Enables/disables sub channel.
Definition d868uv_codeplug.cc:671
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:477
bool keyLockForced() const
Returns true if the "professional" key is locked.
Definition d868uv_codeplug.cc:1065
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const
Returns the key function for a short press on the function key 3/C.
Definition d868uv_codeplug.cc:446
void setMinVFOScanFrequencyUHF(Frequency hz)
Sets the minimum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:843
void setLastCallerDisplayMode(AnytoneDisplaySettingsExtension::LastCallerDisplayMode mode)
Sets the last-caller display mode.
Definition d868uv_codeplug.cc:807
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const
Returns the key function for a short press on the function key 1.
Definition d868uv_codeplug.cc:455
void setAutoRepeaterMinFrequencyVHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:1087
void setMenuExitTime(Interval intv)
Sets the menu exit time in seconds.
Definition d868uv_codeplug.cc:744
void enableShowCurrentContact(bool enable)
Enables/disables display of current contact.
Definition d868uv_codeplug.cc:1010
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition d868uv_codeplug.cc:1187
Interval longPressDuration() const
Returns the long-press duration in ms.
Definition d868uv_codeplug.cc:518
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const
Returns the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:500
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2.
Definition d868uv_codeplug.cc:468
void setDefaultZoneIndexA(unsigned idx)
Sets the default zone (0-based) for VFO A.
Definition d868uv_codeplug.cc:1139
virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())
Create RX group lists from codeplug.
Definition d868uv_codeplug.cc:1892
virtual bool createElements(Context &ctx, const ErrorStack &err=ErrorStack())
Creates all config objects from the downloaded codeplug.
Definition d868uv_codeplug.cc:1533
virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition d868uv_codeplug.cc:2219
virtual bool decodeDMREncryptionKeys(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes DMR encryption keys.
Definition d868uv_codeplug.cc:2381
virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the boot settings section.
Definition d868uv_codeplug.cc:2166
virtual void allocateChannels()
Allocate channels from bitmap.
Definition d868uv_codeplug.cc:1604
virtual void allocate2ToneSettings()
Allocates 2-Tone settings.
Definition d868uv_codeplug.cc:2465
virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode scan lists into codeplug.
Definition d868uv_codeplug.cc:2062
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition d868uv_codeplug.cc:1639
virtual void allocate5ToneSettings()
Allocates 5-Tone settings.
Definition d868uv_codeplug.cc:2436
virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create contacts from codeplug.
Definition d868uv_codeplug.cc:1742
virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition d868uv_codeplug.cc:2123
virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes auto-repeater offset frequencies.
Definition d868uv_codeplug.cc:2329
virtual bool linkZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack())
Function to link a single zone.
Definition d868uv_codeplug.cc:2038
virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack())
Set radio ID from codeplug.
Definition d868uv_codeplug.cc:1841
virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition d868uv_codeplug.cc:2188
virtual void allocateSMSMessages()
Allocate prefab SMS messages.
Definition d868uv_codeplug.cc:2234
virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode zones into codeplug.
Definition d868uv_codeplug.cc:1946
virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode contacts into codeplug.
Definition d868uv_codeplug.cc:1713
virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Link SMS messages.
Definition d868uv_codeplug.cc:2291
virtual void allocatDMREncryptionKeys()
Allocates DMR encryption keys.
Definition d868uv_codeplug.cc:2358
virtual void allocateHotKeySettings()
Allocates hot key settings memory section.
Definition d868uv_codeplug.cc:2299
virtual void allocate5ToneIDs()
Allocates all 5-Tone IDs used.
Definition d868uv_codeplug.cc:2420
virtual void allocateScanLists()
Allocate scanlists from bitmaps.
Definition d868uv_codeplug.cc:2044
virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition d868uv_codeplug.cc:2130
virtual void allocateDTMFNumbers()
Allocates DTMF number list memory section.
Definition d868uv_codeplug.cc:2148
virtual void allocateZones()
Allocate zones from bitmaps.
Definition d868uv_codeplug.cc:1933
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Links all previously created config objects.
Definition d868uv_codeplug.cc:1579
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition d868uv_codeplug.cc:1659
virtual void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition d868uv_codeplug.cc:1348
virtual void allocateVFOSettings()
Allocate VFO settings.
Definition d868uv_codeplug.cc:1678
virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create analog contacts from codeplug.
Definition d868uv_codeplug.cc:1793
virtual void allocateAlarmSettings()
Allocates alarm settings memory section.
Definition d868uv_codeplug.cc:2406
virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Function to decode a single zone.
Definition d868uv_codeplug.cc:2001
virtual void allocateZoneChannelList()
Allocates zone channel list memory section.
Definition d868uv_codeplug.cc:2142
virtual void allocateRadioIDs()
Allocate radio IDs from bitmaps.
Definition d868uv_codeplug.cc:1813
virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given config (via context) to the binary codeplug.
Definition d868uv_codeplug.cc:1488
virtual bool encodeDMREncryptionKeys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes DMR encryption keys.
Definition d868uv_codeplug.cc:2363
D868UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor constructor.
Definition d868uv_codeplug.cc:1305
virtual void allocateUpdated()
Allocate all code-plug elements that must be written back to the device to maintain a working codeplu...
Definition d868uv_codeplug.cc:1318
virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link scan lists.
Definition d868uv_codeplug.cc:2097
virtual void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition d868uv_codeplug.cc:1420
virtual void allocate5ToneFunctions()
Allocates 5-Tone functions.
Definition d868uv_codeplug.cc:2431
virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode analog contacts into codeplug.
Definition d868uv_codeplug.cc:1779
virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the boot settings section.
Definition d868uv_codeplug.cc:2159
virtual void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition d868uv_codeplug.cc:1363
virtual bool encodeZone(int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Function to encode a single zone.
Definition d868uv_codeplug.cc:1970
virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes auto-repeater offset frequencies.
Definition d868uv_codeplug.cc:2313
virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition d868uv_codeplug.cc:2137
virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes prefab SMS messages.
Definition d868uv_codeplug.cc:2253
virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode radio ID into codeplug.
Definition d868uv_codeplug.cc:1829
virtual void allocateRepeaterOffsetFrequencies()
Allocates repeater offset settings memory section.
Definition d868uv_codeplug.cc:2307
virtual void allocateGPSSystems()
Allocates GPS settings memory section.
Definition d868uv_codeplug.cc:2174
virtual void allocateGeneralSettings()
Allocates general settings memory section.
Definition d868uv_codeplug.cc:2118
virtual void allocateFMBroadcastSettings()
Allocates FM broadcast settings memory section.
Definition d868uv_codeplug.cc:2413
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Link zones.
Definition d868uv_codeplug.cc:2007
virtual void allocateContacts()
Allocate contacts from bitmaps.
Definition d868uv_codeplug.cc:1687
virtual void allocateAnalogContacts()
Allocate analog contacts from bitmaps.
Definition d868uv_codeplug.cc:1763
virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link RX group lists.
Definition d868uv_codeplug.cc:1911
virtual void allocateDTMFSettings()
Allocates DTMF settings.
Definition d868uv_codeplug.cc:2471
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition d868uv_codeplug.cc:1623
virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Create scan lists from codeplug.
Definition d868uv_codeplug.cc:2077
virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Create SMS messages from codeplug.
Definition d868uv_codeplug.cc:2272
virtual void allocatEnhancedEncryptionKeys()
Allocates 'enhanced' encryption keys.
Definition d868uv_codeplug.cc:2400
Config * preprocess(Config *config, const ErrorStack &err) const
Returns a prepared configuration for this particular radio.
Definition d868uv_codeplug.cc:1465
virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition d868uv_codeplug.cc:2180
virtual void allocate2ToneIDs()
Allocates all 2-Tone IDs used.
Definition d868uv_codeplug.cc:2441
virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode RX group lists into codeplug.
Definition d868uv_codeplug.cc:1879
virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack())
Create zones from codeplug.
Definition d868uv_codeplug.cc:1976
virtual void allocate2ToneFunctions()
Allocates 2-Tone functions.
Definition d868uv_codeplug.cc:2453
bool allocateBitmaps()
Allocates the bitmaps.
Definition d868uv_codeplug.cc:1388
virtual void allocateRXGroupLists()
Allocates RX group lists from bitmaps.
Definition d868uv_codeplug.cc:1859
virtual void allocateBootSettings()
Allocates boot settings memory section.
Definition d868uv_codeplug.cc:2154
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
This class represents a DMR position reporting system within the codeplug.
Definition gpssystem.hh:69
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Represents a time interval.
Definition interval.hh:11
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
A config item that encodes a melody.
Definition melody.hh:20
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Represents the common radio-global settings.
Definition radiosettings.hh:17
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
Internal used offsets within the channel element.
Definition anytone_codeplug.hh:354
Internal used offsets within the element.
Definition anytone_codeplug.hh:1261
Internal used offsets within the channel element.
Definition d868uv_codeplug.hh:143
Colors supported by the D868UVE.
Definition d868uv_codeplug.hh:42
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition d868uv_codeplug.cc:21
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition d868uv_codeplug.cc:31
CodedColor
Encoding of the supported colors.
Definition d868uv_codeplug.hh:51
Device specific key functions.
Definition d868uv_codeplug.hh:171
KeyFunctionCode
Encoded key functions.
Definition d868uv_codeplug.hh:180
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition d868uv_codeplug.cc:307
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition d868uv_codeplug.cc:261
Some limits for the settings.
Definition d868uv_codeplug.hh:427
static constexpr Range< unsigned int > micGain()
Valid mic gain settings.
Definition d868uv_codeplug.hh:431
static constexpr Range< unsigned int > vox()
Valid VOX sensitivity levels.
Definition d868uv_codeplug.hh:429
Some internal used offsets within the element.
Definition d868uv_codeplug.hh:436
Some limits for the codeplug.
Definition d868uv_codeplug.hh:694
static constexpr unsigned int numZones()
Max number of zones.
Definition d868uv_codeplug.hh:706
static constexpr unsigned int contactsPerBank()
Max number of contacts per bank.
Definition d868uv_codeplug.hh:697
static constexpr unsigned int zoneNameLength()
Max zone name length.
Definition d868uv_codeplug.hh:708
static constexpr unsigned int numRadioIDs()
Max number of radio IDs.
Definition d868uv_codeplug.hh:704
static constexpr unsigned int numTwoToneIDs()
Max number of two-tone IDs.
Definition d868uv_codeplug.hh:712
static constexpr unsigned int contactsPerBlock()
Max number of contacts per block.
Definition d868uv_codeplug.hh:698
static constexpr unsigned int numChannelsPerZone()
Max number of channels per zone.
Definition d868uv_codeplug.hh:707
static constexpr unsigned int numGroupLists()
Max number of group lists.
Definition d868uv_codeplug.hh:701
static constexpr unsigned int numTwoToneFunctions()
Max number of two-tone functions.
Definition d868uv_codeplug.hh:713
static constexpr unsigned int numMessages()
Max number of preset SMS.
Definition d868uv_codeplug.hh:710
static constexpr unsigned int numDTMFContacts()
Max number of DTMF contacts.
Definition d868uv_codeplug.hh:700
static constexpr unsigned int numScanListsPerBank()
Max number of scan lists per bank.
Definition d868uv_codeplug.hh:703
static constexpr unsigned int numScanLists()
Max number of scan lists.
Definition d868uv_codeplug.hh:702
static constexpr unsigned int numContacts()
Max number of contacts.
Definition d868uv_codeplug.hh:699
static constexpr unsigned int numChannels()
Max number of channels.
Definition d868uv_codeplug.hh:696
static constexpr unsigned int dmrAPRSSystems()
Max number of DMR APRS systems.
Definition d868uv_codeplug.hh:709
static constexpr unsigned int numMessagePerBank()
Max number of SMS per bank.
Definition d868uv_codeplug.hh:711
static constexpr unsigned int channelsPerBank()
Max number of channels per bank.
Definition d868uv_codeplug.hh:695
Some internal used offsets within the codeplug.
Definition d868uv_codeplug.hh:718
Internal used sizes.
Definition d868uv_codeplug.hh:799
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107