libdrmconf 0.13.2
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 GPSSystem;
14
15
188{
189 Q_OBJECT
190
191protected:
193 struct Color {
194 public:
196 static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
198 static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
199
200 protected:
202 typedef enum {
203 White = 0, Red=1
204 } CodedColor;
205 };
206
207
208public:
216 {
217 public:
219 enum class DMREncryptionType {
220 Basic = 0,
221 Enhanced = 1
222 };
223
225 enum class APRSType {
226 Off = 0, DMR = 1
227 };
228
229 protected:
231 ChannelElement(uint8_t *ptr, unsigned size);
232
233 public:
235 ChannelElement(uint8_t *ptr);
236
238 virtual bool ranging() const;
240 virtual void enableRanging(bool enable);
242 virtual bool throughMode() const;
244 virtual void enableThroughMode(bool enable);
246 virtual bool dataACK() const;
248 virtual void enableDataACK(bool enable);
249
251 APRSType txAPRSType() const;
253 void setTXAPRSType(APRSType aprsType);
255 virtual unsigned digitalAPRSSystemIndex() const;
257 virtual void setDigitalAPRSSystemIndex(unsigned idx);
258
260 virtual DMREncryptionType dmrEncryptionType() const;
262 virtual void setDMREncryptionType(DMREncryptionType type);
264 virtual bool hasDMREncryptionKeyIndex() const;
266 virtual unsigned dmrEncryptionKeyIndex() const;
268 virtual void setDMREncryptionKeyIndex(unsigned idx);
270 virtual void clearDMREncryptionKeyIndex();
271
273 virtual bool multipleKeyEncryption() const;
275 virtual void enableMultipleKeyEncryption(bool enable);
277 virtual bool randomKey() const;
279 virtual void enableRandomKey(bool enable);
281 virtual bool sms() const;
283 virtual void enableSMS(bool enable);
284
286 virtual Channel *toChannelObj(Context &ctx) const;
288 virtual bool linkChannelObj(Channel *c, Context &ctx) const;
290 virtual bool fromChannelObj(const Channel *c, Context &ctx);
291
292 protected:
296 static Bit dmrEncryptionType() { return {0x0021, 6}; }
297 static unsigned int dmrEncryptionKey() { return 0x0022; }
298 static Bit ranging() { return {0x0034, 0}; }
299 static Bit throughMode() { return {0x0034, 1}; }
300 static Bit dataACK() { return {0x0034, 2}; }
301 static unsigned int txAPRSType() { return 0x0035; }
302 static unsigned int digitalAPRSSystemIndex() { return 0x0036; }
303 static Bit multipleKeyEncryption() { return {0x003b, 0}; }
304 static Bit randomKey() { return {0x003b, 1}; }
305 static Bit sms() { return {0x003b, 2}; }
307 };
308 };
309
319 {
320 protected:
322 struct KeyFunction {
323 public:
328
329 protected:
331 typedef enum {
332 Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
333 Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
334 Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
335 Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
336 HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
337 WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
338 PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
339 ChannelType = 0x22, Ranging = 0x23, ChannelRanging = 0x24, MaxVolume = 0x25, Slot = 0x26
341 };
342
344 enum class BacklightDuration {
345 Infinite = 0, _5s = 1, _10s = 2, _15s = 3, _20s = 4, _25s = 5, _30s = 6, _1min=7, _2min=8,
346 _3min = 9, _4min = 10, _5min = 11
347 };
348
349 protected:
351 GeneralSettingsElement(uint8_t *ptr, unsigned size);
352
353 public:
355 GeneralSettingsElement(uint8_t *ptr);
356
358 static constexpr unsigned int size() { return 0x00d0; }
359
361 void clear();
362
367
369 virtual unsigned voxLevel() const;
371 virtual void setVOXLevel(unsigned level);
373 virtual Interval voxDelay() const;
375 virtual void setVOXDelay(Interval ms);
380 unsigned int dmrMicGain() const;
381 void setDMRMicGain(unsigned int gain);
382 unsigned maxSpeakerVolume() const;
383 void setMaxSpeakerVolume(unsigned level);
385 virtual unsigned maxHeadPhoneVolume() const;
387 virtual void setMaxHeadPhoneVolume(unsigned max);
388 bool enhanceAudio() const;
389 void enableEnhancedAudio(bool enable);
390 bool recording() const;
391 void enableRecording(bool enable);
393 virtual unsigned recordingDelay() const;
395 virtual void setRecodringDelay(unsigned ms);
396
397
408
431
432 bool vfoModeA() const;
433 void enableVFOModeA(bool enable);
434 bool vfoModeB() const;
435 void enableVFOModeB(bool enable);
436
437 unsigned memoryZoneA() const;
438 void setMemoryZoneA(unsigned zone);
439 unsigned memoryZoneB() const;
440 void setMemoryZoneB(unsigned zone);
441
442 bool gps() const;
443 void enableGPS(bool enable);
444 QTimeZone gpsTimeZone() const;
445 void setGPSTimeZone(const QTimeZone &zone);
446 bool getGPSPosition() const;
447 void enableGetGPSPosition(bool enable);
448 bool gpsUnitsImperial() const ;
449 void enableGPSUnitsImperial(bool enable);
451 virtual Interval gpsUpdatePeriod() const;
453 virtual void setGPSUpdatePeriod(Interval sec);
454
455 bool keyToneEnabled() const;
456 void enableKeyTone(bool enable);
457 bool smsAlert() const;
458 void enableSMSAlert(bool enable);
459 bool callAlert() const;
460 void enableCallAlert(bool enable);
461 bool dmrTalkPermit() const;
462 void enableDMRTalkPermit(bool enable);
463 bool fmTalkPermit() const;
464 void enableFMTalkPermit(bool enable);
465 bool dmrResetTone() const;
466 void enableDMRResetTone(bool enable);
467 bool idleChannelTone() const;
468 void enableIdleChannelTone(bool enable);
469 bool startupTone() const;
470 void enableStartupTone(bool enable);
471 void callToneMelody(Melody &melody) const;
472 void setCallToneMelody(const Melody &melody);
473 void idleToneMelody(Melody &melody) const;
474 void setIdleToneMelody(const Melody &melody);
475 void resetToneMelody(Melody &melody) const;
476 void setResetToneMelody(const Melody &melody);
477
478 bool activeChannelB() const;
479 void enableActiveChannelB(bool enable);
480
481 bool subChannel() const;
482 void enableSubChannel(bool enable);
483
484 Interval menuExitTime() const;
485 void setMenuExitTime(Interval intv);
486
487 bool callEndPrompt() const;
488 void enableCallEndPrompt(bool enable);
489 bool volumeChangePrompt() const;
490 void enableVolumeChangePrompt(bool enable);
493 bool displayClock() const;
494 void enableDisplayClock(bool enable);
495 bool displayCall() const;
496 void enableDisplayCall(bool enable);
497 AnytoneDisplaySettingsExtension::Color callDisplayColor() const;
498 void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color);
499 bool showLastHeard() const;
500 void enableShowLastHeard(bool enable);
501 unsigned brightness() const;
502 void setBrightness(unsigned level);
504 virtual bool backlightPermanent() const;
506 virtual Interval backlightDuration() const;
508 virtual void setBacklightDuration(Interval sec);
510 virtual void enableBacklightPermanent();
511
518 void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx);
522 void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx);
532
533 bool showCurrentContact() const;
534 void enableShowCurrentContact(bool enable);
535
537 virtual bool keyToneLevelAdjustable() const;
539 virtual unsigned keyToneLevel() const;
541 virtual void setKeyToneLevel(unsigned level);
543 virtual void setKeyToneLevelAdjustable();
544
545 bool knobLock() const;
546 void enableKnobLock(bool enable);
547 bool keypadLock() const;
548 void enableKeypadLock(bool enable);
549 bool sidekeysLock() const;
550 void enableSidekeysLock(bool enable);
551 bool keyLockForced() const;
552 void enableKeyLockForced(bool enable);
553
554 bool defaultChannel() const;
555 void enableDefaultChannel(bool enable);
556 unsigned defaultZoneIndexA() const;
557 void setDefaultZoneIndexA(unsigned idx);
558 unsigned defaultZoneIndexB() const;
559 void setDefaultZoneIndexB(unsigned idx);
560 bool defaultChannelAIsVFO() const;
561 unsigned defaultChannelAIndex() const;
562 void setDefaultChannelAIndex(unsigned idx);
564 bool defaultChannelBIsVFO() const;
565 unsigned defaultChannelBIndex() const;
566 void setDefaultChannelBIndex(unsigned idx);
568
569 bool keepLastCaller() const;
570 void enableKeepLastCaller(bool enable);
571
572 bool fromConfig(const Flags &flags, Context &ctx);
573 bool updateConfig(Context &ctx);
574 bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack());
575
576 protected:
580 static constexpr unsigned int enableKeyTone() { return 0x0000; }
581 static constexpr unsigned int powerSaveMode() { return 0x000b; }
582 static constexpr unsigned int voxLevel() { return 0x000c; }
583 static constexpr unsigned int voxDelay() { return 0x000d; }
584 static constexpr unsigned int vfoScanType() { return 0x000e; }
585 static constexpr unsigned int dmrMicGain() { return 0x000f; }
586 static constexpr unsigned int progFuncKeyAShort() { return 0x0010; }
587 static constexpr unsigned int progFuncKeyBShort() { return 0x0011; }
588 static constexpr unsigned int progFuncKeyCShort() { return 0x0012; }
589 static constexpr unsigned int progFuncKey1Short() { return 0x0013; }
590 static constexpr unsigned int progFuncKey2Short() { return 0x0014; }
591 static constexpr unsigned int vfoModeA() { return 0x0015; }
592 static constexpr unsigned int vfoModeB() { return 0x0016; }
593 static constexpr unsigned int memZoneA() { return 0x001f; }
594 static constexpr unsigned int memZoneB() { return 0x0020; }
595 static constexpr unsigned int enableRecoding() { return 0x0022; }
596 static constexpr unsigned int displayBrightness() { return 0x0026; }
597 static constexpr unsigned int backlightDuration() { return 0x0027; }
598 static constexpr unsigned int gpsEnable() { return 0x0028; }
599 static constexpr unsigned int smsAlert() { return 0x0029; }
600 static constexpr unsigned int activeChannelB() { return 0x002c; }
601 static constexpr unsigned int subChannel() { return 0x002d; }
602 static constexpr unsigned int callAlert() { return 0x002f; }
603 static constexpr unsigned int gpsTimeZone() { return 0x0030; }
604 static constexpr unsigned int talkPermit() { return 0x0031; }
605 static constexpr unsigned int dmrResetTone() { return 0x0032; }
606 static constexpr unsigned int voxSource() { return 0x0033; }
607 static constexpr unsigned int idleChannelTone() { return 0x0036; }
608 static constexpr unsigned int menuExitTime() { return 0x0037; }
609 static constexpr unsigned int startupTone() { return 0x0039; }
610 static constexpr unsigned int callEndPrompt() { return 0x003a; }
611 static constexpr unsigned int maxSpeakerVolume() { return 0x003b; }
612 static constexpr unsigned int getGPSPosition() { return 0x003f; }
613 static constexpr unsigned int progFuncKeyALong() { return 0x0041; }
614 static constexpr unsigned int progFuncKeyBLong() { return 0x0042; }
615 static constexpr unsigned int progFuncKeyCLong() { return 0x0043; }
616 static constexpr unsigned int progFuncKey1Long() { return 0x0044; }
617 static constexpr unsigned int progFuncKey2Long() { return 0x0045; }
618 static constexpr unsigned int longPressDuration() { return 0x0046; }
619 static constexpr unsigned int volumeChangePrompt(){ return 0x0047; }
620 static constexpr unsigned int autoRepeaterDirA() { return 0x0048; }
621 static constexpr unsigned int lastCallerDisplay() { return 0x004d; }
622 static constexpr unsigned int showClock() { return 0x0051; }
623 static constexpr unsigned int maxHeadPhoneVolume(){ return 0x0052; }
624 static constexpr unsigned int enhanceAudio() { return 0x0057; }
625 static constexpr unsigned int minVFOScanUHF() { return 0x0058; }
626 static constexpr unsigned int maxVFOScanUHF() { return 0x005c; }
627 static constexpr unsigned int minVFOScanVHF() { return 0x0060; }
628 static constexpr unsigned int maxVFOScanVHF() { return 0x0064; }
629 static constexpr unsigned int autoRepOffsetUHF() { return 0x0068; }
630 static constexpr unsigned int autoRepOffsetVHF() { return 0x0069; }
631 static constexpr unsigned int callToneTones() { return 0x0072; }
632 static constexpr unsigned int callToneDurations() { return 0x007c; }
633 static constexpr unsigned int idleToneTones() { return 0x0086; }
634 static constexpr unsigned int idleToneDurations() { return 0x0090; }
635 static constexpr unsigned int resetToneTones() { return 0x009a; }
636 static constexpr unsigned int resetToneDurations(){ return 0x00a4; }
637 static constexpr unsigned int recordingDelay() { return 0x00ae; }
638 static constexpr unsigned int callDisplayMode() { return 0x00af; }
639 static constexpr unsigned int callColor() { return 0x00b0; }
640 static constexpr unsigned int gpsPeriod() { return 0x00b1; }
641 static constexpr unsigned int showCurrentContact(){ return 0x00b2; }
642 static constexpr unsigned int keyToneLevel() { return 0x00b3; }
643 static constexpr unsigned int gpsUnits() { return 0x00b4; }
644 static constexpr unsigned int knobLock() { return 0x00b5; }
645 static constexpr unsigned int keypadLock() { return 0x00b5; }
646 static constexpr unsigned int sideKeyLock() { return 0x00b5; }
647 static constexpr unsigned int forceKeyLock() { return 0x00b5; }
648 static constexpr unsigned int showLastHeard() { return 0x00b6; }
649 static constexpr unsigned int autoRepMinVHF() { return 0x00b8; }
650 static constexpr unsigned int autoRepMaxVHF() { return 0x00bc; }
651 static constexpr unsigned int autoRepMinUHF() { return 0x00c0; }
652 static constexpr unsigned int autoRepMaxUHF() { return 0x00c4; }
653 static constexpr unsigned int autoRepeaterDirB() { return 0x00c8; }
654 static constexpr unsigned int defaultChannels() { return 0x00ca; }
655 static constexpr unsigned int defaultZoneA() { return 0x00cb; }
656 static constexpr unsigned int defaultZoneB() { return 0x00cc; }
657 static constexpr unsigned int defaultChannelA() { return 0x00cd; }
658 static constexpr unsigned int defaultChannelB() { return 0x00ce; }
659 static constexpr unsigned int keepLastCaller() { return 0x00cf; }
661 };
662 };
663
664protected:
666 explicit D868UVCodeplug(const QString &label, QObject *parent = nullptr);
667
668public:
670 explicit D868UVCodeplug(QObject *parent = nullptr);
671
672 Config* preprocess(Config *config, const ErrorStack &err) const;
673
674protected:
675 bool allocateBitmaps();
676 virtual void setBitmaps(Context &ctx);
677 virtual void allocateUpdated();
678 virtual void allocateForDecoding();
679 virtual void allocateForEncoding();
680
681 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
682 virtual bool createElements(Context &ctx, const ErrorStack &err=ErrorStack());
683 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
684
686 virtual void allocateChannels();
688 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
690 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
692 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
693
695 virtual void allocateVFOSettings();
696
698 virtual void allocateContacts();
700 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
702 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack());
703
705 virtual void allocateAnalogContacts();
707 virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
709 virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack());
710
712 virtual void allocateRadioIDs();
714 virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
716 virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack());
717
719 virtual void allocateRXGroupLists();
721 virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
723 virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
725 virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
726
728 virtual void allocateZones();
730 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
732 virtual bool encodeZone(int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
734 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack());
736 virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
738 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
740 virtual bool linkZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack());
741
743 virtual void allocateScanLists();
745 virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
747 virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
749 virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
750
752 virtual void allocateGeneralSettings();
754 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
756 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
758 virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
759
761 virtual void allocateZoneChannelList();
762
764 virtual void allocateDTMFNumbers();
765
767 virtual void allocateBootSettings();
769 virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
771 virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack());
772
774 virtual void allocateGPSSystems();
776 virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
778 virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
780 virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
781
783 virtual void allocateSMSMessages();
785 virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
787 virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
789 virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
790
791
793 virtual void allocateHotKeySettings();
794
798 virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
800 virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack());
801
803 virtual void allocatDMREncryptionKeys();
805 virtual bool encodeDMREncryptionKeys(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
807 virtual bool decodeDMREncryptionKeys(Context &ctx, const ErrorStack &err=ErrorStack());
808
810 virtual void allocatEnhancedEncryptionKeys();
811
813 virtual void allocateAlarmSettings();
815 virtual void allocateFMBroadcastSettings();
816
818 virtual void allocate5ToneIDs();
820 virtual void allocate5ToneFunctions();
822 virtual void allocate5ToneSettings();
823
825 virtual void allocate2ToneIDs();
827 virtual void allocate2ToneFunctions();
829 virtual void allocate2ToneSettings();
830
832 virtual void allocateDTMFSettings();
833
834public:
836 struct Limit {
837 static constexpr unsigned int channelsPerBank() { return 128; }
838 static constexpr unsigned int numChannels() { return 4000; }
839 static constexpr unsigned int contactsPerBank() { return 1000; }
840 static constexpr unsigned int contactsPerBlock() { return 4; }
841 static constexpr unsigned int numContacts() { return 10000; }
842 static constexpr unsigned int numDTMFContacts() { return 128; }
843 static constexpr unsigned int numGroupLists() { return 250; }
844 static constexpr unsigned int numScanLists() { return 250; }
845 static constexpr unsigned int numScanListsPerBank() { return 16; }
846 static constexpr unsigned int numRadioIDs() { return 250; }
847 // There is no zone element -> hence all attributes must be defied within the codeplug.
848 static constexpr unsigned int numZones() { return 250; }
849 static constexpr unsigned int numChannelsPerZone() { return 250; }
850 static constexpr unsigned int zoneNameLength() { return 16; }
851 static constexpr unsigned int dmrAPRSSystems() { return 8; }
852 static constexpr unsigned int numMessages() { return 100; }
853 static constexpr unsigned int numMessagePerBank() { return 8; }
854 static constexpr unsigned int numTwoToneIDs() { return 24; }
855 static constexpr unsigned int numTwoToneFunctions() { return 16; }
856 };
857
858protected:
860 struct Offset {
862 static constexpr unsigned int channelBitmap() { return 0x024c1500; }
863 static constexpr unsigned int channelBanks() { return 0x00800000; }
864 static constexpr unsigned int betweenChannelBanks() { return 0x00040000; }
865 static constexpr unsigned int vfoA() { return 0x00fc0800; }
866 static constexpr unsigned int vfoB() { return 0x00fc0840; }
867
868 static constexpr unsigned int contactBitmap() { return 0x02640000; }
869 static constexpr unsigned int contactBanks() { return 0x02680000; }
870 static constexpr unsigned int betweenContactBanks() { return 0x00040000; }
871 static constexpr unsigned int betweenContactBlocks() { return 0x00000190; }
872 static constexpr unsigned int contactIndex() { return 0x02600000; }
873 static constexpr unsigned int contactIdTable() { return 0x04340000; }
874
875 static constexpr unsigned int dtmfContactBytemap() { return 0x02900100; }
876 static constexpr unsigned int dtmfContacts() { return 0x02940000; }
877 static constexpr unsigned int dtmfIndex() { return 0x02900000; }
878 static constexpr unsigned int dtmfSettings() { return 0x024C1080; }
879 static constexpr unsigned int dtmfIDList() { return 0x02500500; }
880
881 static constexpr unsigned int groupListBitmap() { return 0x025C0B10; }
882 static constexpr unsigned int groupLists() { return 0x02980000; }
883 static constexpr unsigned int betweenGroupLists() { return 0x00000200; }
884
885 static constexpr unsigned int scanListBitmap() { return 0x024c1340; }
886 static constexpr unsigned int scanListBanks() { return 0x01080000; }
887 static constexpr unsigned int betweenScanLists() { return 0x00000200; }
888 static constexpr unsigned int betweenScanListBanks() { return 0x00040000; }
889
890 static constexpr unsigned int radioIDBitmap() { return 0x024c1320; }
891 static constexpr unsigned int radioIDs() { return 0x02580000; }
892
893 static constexpr unsigned int settings() { return 0x02500000; }
894 static constexpr unsigned int zoneChannelList() { return 0x02500100; }
895 static constexpr unsigned int bootSettings() { return 0x02500600; }
896 static constexpr unsigned int aprsSettings() { return 0x02501000; }
897 static constexpr unsigned int dmrAPRSMessage() { return 0x02501100; }
898 static constexpr unsigned int offsetFrequencies() { return 0x024C2000; }
899
900 static constexpr unsigned int zoneBitmap() { return 0x024c1300; }
901 static constexpr unsigned int zoneChannels() { return 0x01000000; }
902 static constexpr unsigned int betweenZoneChannels() { return 0x00000200; }
903 static constexpr unsigned int zoneNames() { return 0x02540000; }
904 static constexpr unsigned int betweenZoneNames() { return 0x00000020; }
905
906 static constexpr unsigned int messageBytemap() { return 0x01640800; }
907 static constexpr unsigned int messageBanks() { return 0x02140000; }
908 static constexpr unsigned int betweenMessageBanks() { return 0x00040000; }
909 static constexpr unsigned int messageIndex() { return 0x01640000; }
910
911 static constexpr unsigned int analogQuickCall() { return 0x025C0000; }
912 static constexpr unsigned int statusMessageBitmap() { return 0x025C0B00; }
913 static constexpr unsigned int statusMessages() { return 0x025C0100; }
914 static constexpr unsigned int hotKeySettings() { return 0x025C0500; }
915
916 static constexpr unsigned int alarmSettings() { return 0x024C1400; }
917 static constexpr unsigned int alarmSettingsExtension() { return 0x024c1440; }
918
919 static constexpr unsigned int fiveToneIdBitmap() { return 0x024C0C80; }
920 static constexpr unsigned int fiveToneIdList() { return 0x024C0000; }
921 static constexpr unsigned int fiveToneFunctions() { return 0x024C0D00; }
922 static constexpr unsigned int fiveToneSettings() { return 0x024C1000; }
923
924 static constexpr unsigned int twoToneIdBitmap() { return 0x024C1280; }
925 static constexpr unsigned int twoToneIdList() { return 0x024C1100; }
926 static constexpr unsigned int twoToneFunctionBitmap(){ return 0x024c2600; }
927 static constexpr unsigned int twoToneFunctionList() { return 0x024c2400; }
928 static constexpr unsigned int twoToneSettings() { return 0x024C1290; }
929
930 static constexpr unsigned int wfmChannelBitmap() { return 0x02480210; }
931 static constexpr unsigned int wfmChannels() { return 0x02480000; }
932 static constexpr unsigned int wfmVFO() { return 0x02480200; }
933
934 static constexpr unsigned int dmrEncryptionKeys() { return 0x024C1700; }
935 static constexpr unsigned int enhancedEncryptionKeys() { return 0x024C1800; }
937 };
938
941 struct Size {
943 static constexpr unsigned int zoneName() { return 0x0020; }
944 static constexpr unsigned int zoneChannels() { return 0x0200; }
945 static constexpr unsigned int messageBank() { return 0x0800; }
946 static constexpr unsigned int messageIndex() { return 0x0010; }
948 };
949};
950
951#endif // D868UVCODEPLUG_HH
VoxSource
Source for the VOX.
Definition anytone_settingsextension.hh:921
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
static constexpr unsigned int size()
Returns the size of the element.
Definition anytone_codeplug.hh:168
Represents the base class for the settings elements in all AnyTone codeplugs.
Definition anytone_codeplug.hh:924
Base class interface for all Anytone radio codeplugs.
Definition anytone_codeplug.hh:22
KeyFunction
All possible key functions.
Definition anytone_settingsextension.hh:267
VFOScanType
Encodes the possible VFO scan types.
Definition anytone_settingsextension.hh:2226
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
Base class for all codeplug contexts.
Definition codeplug.hh:286
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 channel element for AnyTone D868UV devices.
Definition d868uv_codeplug.hh:216
virtual void enableThroughMode(bool enable)
Enables/disables though mode.
Definition d868uv_codeplug.cc:79
virtual bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition d868uv_codeplug.cc:185
virtual void enableSMS(bool enable)
Enables/disables SMS.
Definition d868uv_codeplug.cc:162
APRSType
Possible APRS modes.
Definition d868uv_codeplug.hh:225
virtual unsigned dmrEncryptionKeyIndex() const
Returns the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:128
virtual DMREncryptionType dmrEncryptionType() const
Returns the encryption type.
Definition d868uv_codeplug.cc:112
virtual bool multipleKeyEncryption() const
Returns true if multiple key encryption is enabled.
Definition d868uv_codeplug.cc:141
virtual bool throughMode() const
Returns true if through mode is enabled.
Definition d868uv_codeplug.cc:75
virtual bool randomKey() const
Returns true if random key is enabled.
Definition d868uv_codeplug.cc:150
virtual bool sms() const
Returns true if SMS is enabled.
Definition d868uv_codeplug.cc:158
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:167
APRSType txAPRSType() const
Returns APRS type for reporting the position.
Definition d868uv_codeplug.cc:93
void setTXAPRSType(APRSType aprsType)
Sets APRS type for reporting the position.
Definition d868uv_codeplug.cc:97
virtual bool hasDMREncryptionKeyIndex() const
Returns true if a DMR encryption key is set.
Definition d868uv_codeplug.cc:124
virtual void setDMREncryptionKeyIndex(unsigned idx)
Sets the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:132
DMREncryptionType
Possible encryption types.
Definition d868uv_codeplug.hh:219
virtual void enableRanging(bool enable)
Enables/disables ranging.
Definition d868uv_codeplug.cc:70
virtual void setDigitalAPRSSystemIndex(unsigned idx)
Sets the DMR APRS system index.
Definition d868uv_codeplug.cc:106
virtual unsigned digitalAPRSSystemIndex() const
Returns the DMR APRS system index.
Definition d868uv_codeplug.cc:102
virtual void enableDataACK(bool enable)
Enables/disables data ACK.
Definition d868uv_codeplug.cc:88
virtual bool ranging() const
Returns true if ranging is enabled.
Definition d868uv_codeplug.cc:66
virtual void clearDMREncryptionKeyIndex()
Clears the DMR encryption key index.
Definition d868uv_codeplug.cc:136
virtual void setDMREncryptionType(DMREncryptionType type)
Sets the encryption type.
Definition d868uv_codeplug.cc:118
virtual void enableRandomKey(bool enable)
Enables/disables random key.
Definition d868uv_codeplug.cc:154
virtual void enableMultipleKeyEncryption(bool enable)
Enables/disables multiple key encryption.
Definition d868uv_codeplug.cc:145
virtual bool dataACK() const
Returns true if data ACK is enabled.
Definition d868uv_codeplug.cc:84
Represents the general config of the radio within the D868UV binary codeplug.
Definition d868uv_codeplug.hh:319
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
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:404
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:344
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
void setDMRMicGain(unsigned int gain)
Sets the microphone gain.
Definition d868uv_codeplug.cc:422
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
void enableRecording(bool enable)
Enables/disables recording.
Definition d868uv_codeplug.cc:567
unsigned int dmrMicGain() const
Returns the mirophone gain.
Definition d868uv_codeplug.cc:418
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition d868uv_codeplug.cc:464
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:358
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:386
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:413
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:382
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:368
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:409
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
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
virtual void setVOXLevel(unsigned level)
Sets the VOX level.
Definition d868uv_codeplug.cc:395
void enableKeyTone(bool enable)
Enables/disables the key-tone.
Definition d868uv_codeplug.cc:377
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
virtual unsigned voxLevel() const
Returns the VOX level.
Definition d868uv_codeplug.cc:391
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:400
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:373
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
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
Represents the device specific binary codeplug for Anytone AT-D868UV radios.
Definition d868uv_codeplug.hh:188
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:2215
virtual bool decodeDMREncryptionKeys(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes DMR encryption keys.
Definition d868uv_codeplug.cc:2377
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:2461
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:2432
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:2325
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:2230
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:2287
virtual void allocatDMREncryptionKeys()
Allocates DMR encryption keys.
Definition d868uv_codeplug.cc:2354
virtual void allocateHotKeySettings()
Allocates hot key settings memory section.
Definition d868uv_codeplug.cc:2295
virtual void allocate5ToneIDs()
Allocates all 5-Tone IDs used.
Definition d868uv_codeplug.cc:2416
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:2402
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:2359
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:2427
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:2309
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:2249
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:2303
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:2409
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:2467
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:2268
virtual void allocatEnhancedEncryptionKeys()
Allocates 'enhanced' encryption keys.
Definition d868uv_codeplug.cc:2396
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:2437
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:2449
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
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
This class represents a GPS signalling system within the codeplug.
Definition gpssystem.hh:65
Represents a time interval.
Definition interval.hh:11
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:15
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:392
Internal used offsets within the element.
Definition anytone_codeplug.hh:1299
Internal used offsets within the channel element.
Definition d868uv_codeplug.hh:294
Colors supported by the D868UVE.
Definition d868uv_codeplug.hh:193
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition d868uv_codeplug.cc:22
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition d868uv_codeplug.cc:32
CodedColor
Encoding of the supported colors.
Definition d868uv_codeplug.hh:202
Device specific key functions.
Definition d868uv_codeplug.hh:322
KeyFunctionCode
Encoded key functions.
Definition d868uv_codeplug.hh:331
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition d868uv_codeplug.cc:306
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition d868uv_codeplug.cc:260
Some internal used offsets within the element.
Definition d868uv_codeplug.hh:578
Some limits for the codeplug.
Definition d868uv_codeplug.hh:836
static constexpr unsigned int numZones()
Max number of zones.
Definition d868uv_codeplug.hh:848
static constexpr unsigned int contactsPerBank()
Max number of contacts per bank.
Definition d868uv_codeplug.hh:839
static constexpr unsigned int zoneNameLength()
Max zone name length.
Definition d868uv_codeplug.hh:850
static constexpr unsigned int numRadioIDs()
Max number of radio IDs.
Definition d868uv_codeplug.hh:846
static constexpr unsigned int numTwoToneIDs()
Max number of two-tone IDs.
Definition d868uv_codeplug.hh:854
static constexpr unsigned int contactsPerBlock()
Max number of contacts per block.
Definition d868uv_codeplug.hh:840
static constexpr unsigned int numChannelsPerZone()
Max number of channels per zone.
Definition d868uv_codeplug.hh:849
static constexpr unsigned int numGroupLists()
Max number of group lists.
Definition d868uv_codeplug.hh:843
static constexpr unsigned int numTwoToneFunctions()
Max number of two-tone functions.
Definition d868uv_codeplug.hh:855
static constexpr unsigned int numMessages()
Max number of preset SMS.
Definition d868uv_codeplug.hh:852
static constexpr unsigned int numDTMFContacts()
Max number of DTMF contacts.
Definition d868uv_codeplug.hh:842
static constexpr unsigned int numScanListsPerBank()
Max number of scan lists per bank.
Definition d868uv_codeplug.hh:845
static constexpr unsigned int numScanLists()
Max number of scan lists.
Definition d868uv_codeplug.hh:844
static constexpr unsigned int numContacts()
Max number of contacts.
Definition d868uv_codeplug.hh:841
static constexpr unsigned int numChannels()
Max number of channels.
Definition d868uv_codeplug.hh:838
static constexpr unsigned int dmrAPRSSystems()
Max number of DMR APRS systems.
Definition d868uv_codeplug.hh:851
static constexpr unsigned int numMessagePerBank()
Max number of SMS per bank.
Definition d868uv_codeplug.hh:853
static constexpr unsigned int channelsPerBank()
Max number of channels per bank.
Definition d868uv_codeplug.hh:837
Some internal used offsets within the codeplug.
Definition d868uv_codeplug.hh:860
Internal used sizes.
Definition d868uv_codeplug.hh:941
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107