libdrmconf 0.12.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#include "signaling.hh"
8
9class Channel;
10class DMRContact;
11class Zone;
12class RXGroupList;
13class ScanList;
14class GPSSystem;
15
16
189{
190 Q_OBJECT
191
192protected:
194 struct Color {
195 public:
200
201 protected:
203 typedef enum {
204 White = 0, Red=1
205 } CodedColor;
206 };
207
208
209public:
217 {
218 protected:
220 ChannelElement(uint8_t *ptr, unsigned size);
221
222 public:
224 ChannelElement(uint8_t *ptr);
225
227 virtual bool ranging() const;
229 virtual void enableRanging(bool enable);
231 virtual bool throughMode() const;
233 virtual void enableThroughMode(bool enable);
235 virtual bool dataACK() const;
237 virtual void enableDataACK(bool enable);
238
240 virtual bool txDigitalAPRS() const;
242 virtual void enableTXDigitalAPRS(bool enable);
244 virtual unsigned digitalAPRSSystemIndex() const;
246 virtual void setDigitalAPRSSystemIndex(unsigned idx);
247
249 virtual unsigned dmrEncryptionKeyIndex() const;
251 virtual void setDMREncryptionKeyIndex(unsigned idx);
253 virtual bool multipleKeyEncryption() const;
255 virtual void enableMultipleKeyEncryption(bool enable);
257 virtual bool randomKey() const;
259 virtual void enableRandomKey(bool enable);
261 virtual bool sms() const;
263 virtual void enableSMS(bool enable);
264
266 virtual Channel *toChannelObj(Context &ctx) const;
268 virtual bool linkChannelObj(Channel *c, Context &ctx) const;
270 virtual bool fromChannelObj(const Channel *c, Context &ctx);
271
272 protected:
277 };
278
288 {
289 protected:
291 struct KeyFunction {
292 public:
297
298 protected:
300 typedef enum {
301 Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
302 Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
303 Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
304 Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
305 HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
306 WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
307 PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
308 ChannelType = 0x22, Ranging = 0x23, ChannelRanging = 0x24, MaxVolume = 0x25, Slot = 0x26
310 };
311
312 protected:
314 GeneralSettingsElement(uint8_t *ptr, unsigned size);
315
316 public:
318 GeneralSettingsElement(uint8_t *ptr);
319
321 static constexpr unsigned int size() { return 0x00d0; }
322
324 void clear();
325
327 virtual AnytonePowerSaveSettingsExtension::PowerSave powerSave() const;
329 virtual void setPowerSave(AnytonePowerSaveSettingsExtension::PowerSave mode);
330
332 virtual unsigned voxLevel() const;
334 virtual void setVOXLevel(unsigned level);
336 virtual Interval voxDelay() const;
338 virtual void setVOXDelay(Interval ms);
343 unsigned int dmrMicGain() const;
344 void setDMRMicGain(unsigned int gain);
345 unsigned maxSpeakerVolume() const;
346 void setMaxSpeakerVolume(unsigned level);
348 virtual unsigned maxHeadPhoneVolume() const;
350 virtual void setMaxHeadPhoneVolume(unsigned max);
351 bool enhanceAudio() const;
352 void enableEnhancedAudio(bool enable);
353 bool recording() const;
354 void enableRecording(bool enable);
356 virtual unsigned recordingDelay() const;
358 virtual void setRecodringDelay(unsigned ms);
359
360
371
394
395 bool vfoModeA() const;
396 void enableVFOModeA(bool enable);
397 bool vfoModeB() const;
398 void enableVFOModeB(bool enable);
399
400 unsigned memoryZoneA() const;
401 void setMemoryZoneA(unsigned zone);
402 unsigned memoryZoneB() const;
403 void setMemoryZoneB(unsigned zone);
404
405 bool gps() const;
406 void enableGPS(bool enable);
407 QTimeZone gpsTimeZone() const;
408 void setGPSTimeZone(const QTimeZone &zone);
409 bool getGPSPosition() const;
410 void enableGetGPSPosition(bool enable);
411 bool gpsUnitsImperial() const ;
412 void enableGPSUnitsImperial(bool enable);
414 virtual Interval gpsUpdatePeriod() const;
416 virtual void setGPSUpdatePeriod(Interval sec);
417
418 bool keyToneEnabled() const;
419 void enableKeyTone(bool enable);
420 bool smsAlert() const;
421 void enableSMSAlert(bool enable);
422 bool callAlert() const;
423 void enableCallAlert(bool enable);
424 bool dmrTalkPermit() const;
425 void enableDMRTalkPermit(bool enable);
426 bool fmTalkPermit() const;
427 void enableFMTalkPermit(bool enable);
428 bool dmrResetTone() const;
429 void enableDMRResetTone(bool enable);
430 bool idleChannelTone() const;
431 void enableIdleChannelTone(bool enable);
432 bool startupTone() const;
433 void enableStartupTone(bool enable);
434 void callToneMelody(Melody &melody) const;
435 void setCallToneMelody(const Melody &melody);
436 void idleToneMelody(Melody &melody) const;
437 void setIdleToneMelody(const Melody &melody);
438 void resetToneMelody(Melody &melody) const;
439 void setResetToneMelody(const Melody &melody);
440
441 bool activeChannelB() const;
442 void enableActiveChannelB(bool enable);
443
444 bool subChannel() const;
445 void enableSubChannel(bool enable);
446
447 Interval menuExitTime() const;
448 void setMenuExitTime(Interval intv);
449
450 bool callEndPrompt() const;
451 void enableCallEndPrompt(bool enable);
452 bool volumeChangePrompt() const;
453 void enableVolumeChangePrompt(bool enable);
456 bool displayClock() const;
457 void enableDisplayClock(bool enable);
458 bool displayCall() const;
459 void enableDisplayCall(bool enable);
462 bool showLastHeard() const;
463 void enableShowLastHeard(bool enable);
464 unsigned brightness() const;
465 void setBrightness(unsigned level);
467 virtual bool backlightPermanent() const;
469 virtual Interval rxBacklightDuration() const;
471 virtual void setRXBacklightDuration(Interval sec);
473 virtual void enableBacklightPermanent();
474
481 void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx);
485 void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx);
495
496 bool showCurrentContact() const;
497 void enableShowCurrentContact(bool enable);
498
500 virtual bool keyToneLevelAdjustable() const;
502 virtual unsigned keyToneLevel() const;
504 virtual void setKeyToneLevel(unsigned level);
506 virtual void setKeyToneLevelAdjustable();
507
508 bool knobLock() const;
509 void enableKnobLock(bool enable);
510 bool keypadLock() const;
511 void enableKeypadLock(bool enable);
512 bool sidekeysLock() const;
513 void enableSidekeysLock(bool enable);
514 bool keyLockForced() const;
515 void enableKeyLockForced(bool enable);
516
517 bool defaultChannel() const;
518 void enableDefaultChannel(bool enable);
519 unsigned defaultZoneIndexA() const;
520 void setDefaultZoneIndexA(unsigned idx);
521 unsigned defaultZoneIndexB() const;
522 void setDefaultZoneIndexB(unsigned idx);
523 bool defaultChannelAIsVFO() const;
524 unsigned defaultChannelAIndex() const;
525 void setDefaultChannelAIndex(unsigned idx);
527 bool defaultChannelBIsVFO() const;
528 unsigned defaultChannelBIndex() const;
529 void setDefaultChannelBIndex(unsigned idx);
531
532 bool keepLastCaller() const;
533 void enableKeepLastCaller(bool enable);
534
535 bool fromConfig(const Flags &flags, Context &ctx);
536 bool updateConfig(Context &ctx);
537 bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack());
538
539 protected:
543 static constexpr unsigned int enableKeyTone() { return 0x0000; }
544 static constexpr unsigned int powerSaveMode() { return 0x000b; }
545 static constexpr unsigned int voxLevel() { return 0x000c; }
546 static constexpr unsigned int voxDelay() { return 0x000d; }
547 static constexpr unsigned int vfoScanType() { return 0x000e; }
548 static constexpr unsigned int dmrMicGain() { return 0x000f; }
549 static constexpr unsigned int progFuncKeyAShort() { return 0x0010; }
550 static constexpr unsigned int progFuncKeyBShort() { return 0x0011; }
551 static constexpr unsigned int progFuncKeyCShort() { return 0x0012; }
552 static constexpr unsigned int progFuncKey1Short() { return 0x0013; }
553 static constexpr unsigned int progFuncKey2Short() { return 0x0014; }
554 static constexpr unsigned int vfoModeA() { return 0x0015; }
555 static constexpr unsigned int vfoModeB() { return 0x0016; }
556 static constexpr unsigned int memZoneA() { return 0x001f; }
557 static constexpr unsigned int memZoneB() { return 0x0020; }
558 static constexpr unsigned int enableRecoding() { return 0x0022; }
559 static constexpr unsigned int displayBrightness() { return 0x0026; }
560 static constexpr unsigned int backlightDuration() { return 0x0027; }
561 static constexpr unsigned int gpsEnable() { return 0x0028; }
562 static constexpr unsigned int smsAlert() { return 0x0029; }
563 static constexpr unsigned int activeChannelB() { return 0x002c; }
564 static constexpr unsigned int subChannel() { return 0x002d; }
565 static constexpr unsigned int callAlert() { return 0x002f; }
566 static constexpr unsigned int gpsTimeZone() { return 0x0030; }
567 static constexpr unsigned int talkPermit() { return 0x0031; }
568 static constexpr unsigned int dmrResetTone() { return 0x0032; }
569 static constexpr unsigned int voxSource() { return 0x0033; }
570 static constexpr unsigned int idleChannelTone() { return 0x0036; }
571 static constexpr unsigned int menuExitTime() { return 0x0037; }
572 static constexpr unsigned int startupTone() { return 0x0039; }
573 static constexpr unsigned int callEndPrompt() { return 0x003a; }
574 static constexpr unsigned int maxSpeakerVolume() { return 0x003b; }
575 static constexpr unsigned int getGPSPosition() { return 0x003f; }
576 static constexpr unsigned int progFuncKeyALong() { return 0x0041; }
577 static constexpr unsigned int progFuncKeyBLong() { return 0x0042; }
578 static constexpr unsigned int progFuncKeyCLong() { return 0x0043; }
579 static constexpr unsigned int progFuncKey1Long() { return 0x0044; }
580 static constexpr unsigned int progFuncKey2Long() { return 0x0045; }
581 static constexpr unsigned int longPressDuration() { return 0x0046; }
582 static constexpr unsigned int volumeChangePrompt(){ return 0x0047; }
583 static constexpr unsigned int autoRepeaterDirA() { return 0x0048; }
584 static constexpr unsigned int lastCallerDisplay() { return 0x004d; }
585 static constexpr unsigned int showClock() { return 0x0051; }
586 static constexpr unsigned int maxHeadPhoneVolume(){ return 0x0052; }
587 static constexpr unsigned int enhanceAudio() { return 0x0057; }
588 static constexpr unsigned int minVFOScanUHF() { return 0x0058; }
589 static constexpr unsigned int maxVFOScanUHF() { return 0x005c; }
590 static constexpr unsigned int minVFOScanVHF() { return 0x0060; }
591 static constexpr unsigned int maxVFOScanVHF() { return 0x0064; }
592 static constexpr unsigned int autoRepOffsetUHF() { return 0x0068; }
593 static constexpr unsigned int autoRepOffsetVHF() { return 0x0069; }
594 static constexpr unsigned int callToneTones() { return 0x0072; }
595 static constexpr unsigned int callToneDurations() { return 0x007c; }
596 static constexpr unsigned int idleToneTones() { return 0x0086; }
597 static constexpr unsigned int idleToneDurations() { return 0x0090; }
598 static constexpr unsigned int resetToneTones() { return 0x009a; }
599 static constexpr unsigned int resetToneDurations(){ return 0x00a4; }
600 static constexpr unsigned int recordingDelay() { return 0x00ae; }
601 static constexpr unsigned int callDisplayMode() { return 0x00af; }
602 static constexpr unsigned int callColor() { return 0x00b0; }
603 static constexpr unsigned int gpsPeriod() { return 0x00b1; }
604 static constexpr unsigned int showCurrentContact(){ return 0x00b2; }
605 static constexpr unsigned int keyToneLevel() { return 0x00b3; }
606 static constexpr unsigned int gpsUnits() { return 0x00b4; }
607 static constexpr unsigned int knobLock() { return 0x00b5; }
608 static constexpr unsigned int keypadLock() { return 0x00b5; }
609 static constexpr unsigned int sideKeyLock() { return 0x00b5; }
610 static constexpr unsigned int forceKeyLock() { return 0x00b5; }
611 static constexpr unsigned int showLastHeard() { return 0x00b6; }
612 static constexpr unsigned int autoRepMinVHF() { return 0x00b8; }
613 static constexpr unsigned int autoRepMaxVHF() { return 0x00bc; }
614 static constexpr unsigned int autoRepMinUHF() { return 0x00c0; }
615 static constexpr unsigned int autoRepMaxUHF() { return 0x00c4; }
616 static constexpr unsigned int autoRepeaterDirB() { return 0x00c8; }
617 static constexpr unsigned int defaultChannels() { return 0x00ca; }
618 static constexpr unsigned int defaultZoneA() { return 0x00cb; }
619 static constexpr unsigned int defaultZoneB() { return 0x00cc; }
620 static constexpr unsigned int defaultChannelA() { return 0x00cd; }
621 static constexpr unsigned int defaultChannelB() { return 0x00ce; }
622 static constexpr unsigned int keepLastCaller() { return 0x00cf; }
624 };
625 };
626
627protected:
629 explicit D868UVCodeplug(const QString &label, QObject *parent = nullptr);
630
631public:
633 explicit D868UVCodeplug(QObject *parent = nullptr);
634
635protected:
636 bool allocateBitmaps();
637 virtual void setBitmaps(Context &ctx);
638 virtual void allocateUpdated();
639 virtual void allocateForDecoding();
640 virtual void allocateForEncoding();
641
642 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
643 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
644
646 virtual void allocateChannels();
648 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
650 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
652 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
653
655 virtual void allocateVFOSettings();
656
658 virtual void allocateContacts();
660 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
662 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack());
663
665 virtual void allocateAnalogContacts();
667 virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
669 virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack());
670
672 virtual void allocateRadioIDs();
674 virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
676 virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack());
677
679 virtual void allocateRXGroupLists();
681 virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
683 virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
685 virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
686
688 virtual void allocateZones();
690 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
692 virtual bool encodeZone(int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
694 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack());
696 virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
698 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
700 virtual bool linkZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack());
701
703 virtual void allocateScanLists();
705 virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
707 virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
709 virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
710
712 virtual void allocateGeneralSettings();
714 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
716 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
718 virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
719
721 virtual void allocateZoneChannelList();
722
724 virtual void allocateDTMFNumbers();
725
727 virtual void allocateBootSettings();
729 virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
731 virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack());
732
734 virtual void allocateGPSSystems();
736 virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
738 virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
740 virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
741
743 virtual void allocateSMSMessages();
745 virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
747 virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
749 virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
750
751
753 virtual void allocateHotKeySettings();
754
758 virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
760 virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack());
761
763 virtual void allocateAlarmSettings();
765 virtual void allocateFMBroadcastSettings();
766
768 virtual void allocate5ToneIDs();
770 virtual void allocate5ToneFunctions();
772 virtual void allocate5ToneSettings();
773
775 virtual void allocate2ToneIDs();
777 virtual void allocate2ToneFunctions();
779 virtual void allocate2ToneSettings();
780
782 virtual void allocateDTMFSettings();
783
784public:
786 struct Limit {
787 static constexpr unsigned int channelsPerBank() { return 128; }
788 static constexpr unsigned int numChannels() { return 4000; }
789 static constexpr unsigned int contactsPerBank() { return 1000; }
790 static constexpr unsigned int contactsPerBlock() { return 4; }
791 static constexpr unsigned int numContacts() { return 10000; }
792 static constexpr unsigned int numDTMFContacts() { return 128; }
793 static constexpr unsigned int numGroupLists() { return 250; }
794 static constexpr unsigned int numScanLists() { return 250; }
795 static constexpr unsigned int numScanListsPerBank() { return 16; }
796 static constexpr unsigned int numRadioIDs() { return 250; }
797 // There is no zone element -> hence all attributes must be defied within the codeplug.
798 static constexpr unsigned int numZones() { return 250; }
799 static constexpr unsigned int numChannelsPerZone() { return 250; }
800 static constexpr unsigned int zoneNameLength() { return 16; }
801 static constexpr unsigned int dmrAPRSSystems() { return 8; }
802 static constexpr unsigned int numMessages() { return 100; }
803 static constexpr unsigned int numMessagePerBank() { return 8; }
804 static constexpr unsigned int numTwoToneIDs() { return 24; }
805 static constexpr unsigned int numTwoToneFunctions() { return 16; }
806 };
807
808protected:
810 struct Offset {
812 static constexpr unsigned int channelBitmap() { return 0x024c1500; }
813 static constexpr unsigned int channelBanks() { return 0x00800000; }
814 static constexpr unsigned int betweenChannelBanks() { return 0x00040000; }
815 static constexpr unsigned int vfoA() { return 0x00fc0800; }
816 static constexpr unsigned int vfoB() { return 0x00fc0840; }
817
818 static constexpr unsigned int contactBitmap() { return 0x02640000; }
819 static constexpr unsigned int contactBanks() { return 0x02680000; }
820 static constexpr unsigned int betweenContactBanks() { return 0x00040000; }
821 static constexpr unsigned int betweenContactBlocks() { return 0x00000190; }
822 static constexpr unsigned int contactIndex() { return 0x02600000; }
823 static constexpr unsigned int contactIdTable() { return 0x04340000; }
824
825 static constexpr unsigned int dtmfContactBytemap() { return 0x02900100; }
826 static constexpr unsigned int dtmfContacts() { return 0x02940000; }
827 static constexpr unsigned int dtmfIndex() { return 0x02900000; }
828 static constexpr unsigned int dtmfSettings() { return 0x024C1080; }
829 static constexpr unsigned int dtmfIDList() { return 0x02500500; }
830
831 static constexpr unsigned int groupListBitmap() { return 0x025C0B10; }
832 static constexpr unsigned int groupLists() { return 0x02980000; }
833 static constexpr unsigned int betweenGroupLists() { return 0x00000200; }
834
835 static constexpr unsigned int scanListBitmap() { return 0x024c1340; }
836 static constexpr unsigned int scanListBanks() { return 0x01080000; }
837 static constexpr unsigned int betweenScanLists() { return 0x00000200; }
838 static constexpr unsigned int betweenScanListBanks() { return 0x00040000; }
839
840 static constexpr unsigned int radioIDBitmap() { return 0x024c1320; }
841 static constexpr unsigned int radioIDs() { return 0x02580000; }
842
843 static constexpr unsigned int settings() { return 0x02500000; }
844 static constexpr unsigned int zoneChannelList() { return 0x02500100; }
845 static constexpr unsigned int bootSettings() { return 0x02500600; }
846 static constexpr unsigned int aprsSettings() { return 0x02501000; }
847 static constexpr unsigned int dmrAPRSMessage() { return 0x02501100; }
848 static constexpr unsigned int offsetFrequencies() { return 0x024C2000; }
849
850 static constexpr unsigned int zoneBitmap() { return 0x024c1300; }
851 static constexpr unsigned int zoneChannels() { return 0x01000000; }
852 static constexpr unsigned int betweenZoneChannels() { return 0x00000200; }
853 static constexpr unsigned int zoneNames() { return 0x02540000; }
854 static constexpr unsigned int betweenZoneNames() { return 0x00000020; }
855
856 static constexpr unsigned int messageBytemap() { return 0x01640800; }
857 static constexpr unsigned int messageBanks() { return 0x02140000; }
858 static constexpr unsigned int betweenMessageBanks() { return 0x00040000; }
859 static constexpr unsigned int messageIndex() { return 0x01640000; }
860
861 static constexpr unsigned int analogQuickCall() { return 0x025C0000; }
862 static constexpr unsigned int statusMessageBitmap() { return 0x025C0B00; }
863 static constexpr unsigned int statusMessages() { return 0x025C0100; }
864 static constexpr unsigned int hotKeySettings() { return 0x025C0500; }
865
866 static constexpr unsigned int alarmSettings() { return 0x024C1400; }
867 static constexpr unsigned int alarmSettingsExtension() { return 0x024c1440; }
868
869 static constexpr unsigned int fiveToneIdBitmap() { return 0x024C0C80; }
870 static constexpr unsigned int fiveToneIdList() { return 0x024C0000; }
871 static constexpr unsigned int fiveToneFunctions() { return 0x024C0D00; }
872 static constexpr unsigned int fiveToneSettings() { return 0x024C1000; }
873
874 static constexpr unsigned int twoToneIdBitmap() { return 0x024C1280; }
875 static constexpr unsigned int twoToneIdList() { return 0x024C1100; }
876 static constexpr unsigned int twoToneFunctionBitmap(){ return 0x024c2600; }
877 static constexpr unsigned int twoToneFunctionList() { return 0x024c2400; }
878 static constexpr unsigned int twoToneSettings() { return 0x024C1290; }
879
880 static constexpr unsigned int wfmChannelBitmap() { return 0x02480210; }
881 static constexpr unsigned int wfmChannels() { return 0x02480000; }
882 static constexpr unsigned int wfmVFO() { return 0x02480200; }
883
884 static constexpr unsigned int dmrEncryptionIDs() { return 0x024C1700; }
885 static constexpr unsigned int dmrEncryptionKeys() { return 0x024C1800; }
887 };
888
891 struct Size {
893 static constexpr unsigned int zoneName() { return 0x0020; }
894 static constexpr unsigned int zoneChannels() { return 0x0200; }
895 static constexpr unsigned int messageBank() { return 0x0800; }
896 static constexpr unsigned int messageIndex() { return 0x0010; }
898 };
899};
900
901#endif // D868UVCODEPLUG_HH
VoxSource
Source for the VOX.
Definition anytone_extension.hh:1203
Direction
Encodes the auto-repeater offset sign.
Definition anytone_extension.hh:1437
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:807
Base class interface for all Anytone radio codeplugs.
Definition anytone_codeplug.hh:20
Color
Possible display colors.
Definition anytone_extension.hh:992
LastCallerDisplayMode
What to show from the last caller.
Definition anytone_extension.hh:986
KeyFunction
All possible key functions.
Definition anytone_extension.hh:603
VFOScanType
Encodes the possible VFO scan types.
Definition anytone_extension.hh:2166
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:273
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:26
Represents the channel element for AnyTone D868UV devices.
Definition d868uv_codeplug.hh:217
virtual void enableThroughMode(bool enable)
Enables/disables though mode.
Definition d868uv_codeplug.cc:77
virtual bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition d868uv_codeplug.cc:161
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:138
virtual unsigned dmrEncryptionKeyIndex() const
Returns the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:108
virtual bool multipleKeyEncryption() const
Returns true if multiple key encryption is enabled.
Definition d868uv_codeplug.cc:117
virtual bool throughMode() const
Returns true if through mode is enabled.
Definition d868uv_codeplug.cc:73
virtual bool txDigitalAPRS() const
Returns true if TX APRS is enabled.
Definition d868uv_codeplug.cc:91
virtual bool randomKey() const
Returns true if random key is enabled.
Definition d868uv_codeplug.cc:126
virtual bool sms() const
Returns true if SMS is enabled.
Definition d868uv_codeplug.cc:134
virtual bool fromChannelObj(const Channel *c, Context &ctx)
Initializes this codeplug channel from the given generic configuration.
Definition d868uv_codeplug.cc:178
virtual Channel * toChannelObj(Context &ctx) const
Constructs a generic Channel object from the codeplug channel.
Definition d868uv_codeplug.cc:143
virtual void setDMREncryptionKeyIndex(unsigned idx)
Sets the DMR encryption key index (+1), 0=Off.
Definition d868uv_codeplug.cc:112
virtual void enableRanging(bool enable)
Enables/disables ranging.
Definition d868uv_codeplug.cc:68
virtual void setDigitalAPRSSystemIndex(unsigned idx)
Sets the DMR APRS system index.
Definition d868uv_codeplug.cc:103
virtual unsigned digitalAPRSSystemIndex() const
Returns the DMR APRS system index.
Definition d868uv_codeplug.cc:99
virtual void enableDataACK(bool enable)
Enables/disables data ACK.
Definition d868uv_codeplug.cc:86
virtual bool ranging() const
Returns true if ranging is enabled.
Definition d868uv_codeplug.cc:64
virtual void enableRandomKey(bool enable)
Enables/disables random key.
Definition d868uv_codeplug.cc:130
virtual void enableMultipleKeyEncryption(bool enable)
Enables/disables multiple key encryption.
Definition d868uv_codeplug.cc:121
virtual void enableTXDigitalAPRS(bool enable)
Enables/disables TX APRS.
Definition d868uv_codeplug.cc:95
virtual bool dataACK() const
Returns true if data ACK is enabled.
Definition d868uv_codeplug.cc:82
Represents the general config of the radio within the D868UV binary codeplug.
Definition d868uv_codeplug.hh:288
void enableIdleChannelTone(bool enable)
Enables/disables the idle channel tone.
Definition d868uv_codeplug.cc:643
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition d868uv_codeplug.cc:940
bool subChannel() const
Returns true if sub channel is enabled.
Definition d868uv_codeplug.cc:575
void enableGetGPSPosition(bool enable)
Enables/disables get GPS position.
Definition d868uv_codeplug.cc:688
Frequency minVFOScanFrequencyVHF() const
Returns the minimum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:765
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition d868uv_codeplug.cc:1104
virtual void setRecodringDelay(unsigned ms)
Sets the recording delay in ms.
Definition d868uv_codeplug.cc:881
virtual bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition d868uv_codeplug.cc:923
Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:991
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition d868uv_codeplug.cc:1061
void setAutoRepeaterDirectionA(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater offset direction for VFO A.
Definition d868uv_codeplug.cc:706
Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:999
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition d868uv_codeplug.cc:982
void setMaxVFOScanFrequencyVHF(Frequency hz)
Sets the maximum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:778
virtual void setMaxHeadPhoneVolume(unsigned max)
Sets the maximum headphone volume.
Definition d868uv_codeplug.cc:733
void setResetToneMelody(const Melody &melody)
Sets the reset-tone melody.
Definition d868uv_codeplug.cc:867
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const
Returns the key function for a short press on the function key 2/B.
Definition d868uv_codeplug.cc:387
bool knobLock() const
Returns true if the knob is locked.
Definition d868uv_codeplug.cc:949
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1/A.
Definition d868uv_codeplug.cc:382
void enableDisplayClock(bool enable)
Enables/disables clock display.
Definition d868uv_codeplug.cc:724
Interval menuExitTime() const
Returns the menu exit time in seconds.
Definition d868uv_codeplug.cc:648
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition d868uv_codeplug.cc:1099
bool startupTone() const
Returns true if the startup tone is enabled.
Definition d868uv_codeplug.cc:657
bool hasAutoRepeaterOffsetFrequencyIndexUHF() const
Returns true if the auto-repeater offset frequency for UHF is set.
Definition d868uv_codeplug.cc:783
virtual void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition d868uv_codeplug.cc:931
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition d868uv_codeplug.cc:1056
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition d868uv_codeplug.cc:1078
void enableFMTalkPermit(bool enable)
Enables/disables the talk permit tone for analog channels.
Definition d868uv_codeplug.cc:616
bool dmrResetTone() const
Returns true if the reset tone is enabled for digital calls.
Definition d868uv_codeplug.cc:621
void setMaxSpeakerVolume(unsigned level)
Sets the maximum volume.
Definition d868uv_codeplug.cc:679
AnytoneDisplaySettingsExtension::Color callDisplayColor() const
Returns the display color for callsigns.
Definition d868uv_codeplug.cc:896
void enableSMSAlert(bool enable)
Enables/disables SMS alert.
Definition d868uv_codeplug.cc:561
virtual Interval rxBacklightDuration() const
Returns the backlight duration in seconds.
Definition d868uv_codeplug.cc:535
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition d868uv_codeplug.cc:977
virtual void setVOXDelay(Interval ms)
Sets the VOX delay in ms.
Definition d868uv_codeplug.cc:354
AnytoneDisplaySettingsExtension::LastCallerDisplayMode lastCallerDisplayMode() const
Returns the last-caller display mode.
Definition d868uv_codeplug.cc:711
bool keypadLock() const
Returns true if the keypad is locked.
Definition d868uv_codeplug.cc:957
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition d868uv_codeplug.cc:1069
void setMemoryZoneA(unsigned zone)
Sets the memory zone for VFO A.
Definition d868uv_codeplug.cc:499
bool displayClock() const
Returns true if the clock is shown.
Definition d868uv_codeplug.cc:720
bool getGPSPosition() const
Returns true if get GPS position is enabled.
Definition d868uv_codeplug.cc:684
void enableCallAlert(bool enable)
Enables/disables call alert.
Definition d868uv_codeplug.cc:588
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 3/C.
Definition d868uv_codeplug.cc:400
void enableDefaultChannel(bool enable)
Enables/disables default boot channel.
Definition d868uv_codeplug.cc:1038
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition d868uv_codeplug.cc:914
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1020
virtual unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition d868uv_codeplug.cc:927
virtual Interval gpsUpdatePeriod() const
Returns the GPS update period in seconds.
Definition d868uv_codeplug.cc:905
void setDMRMicGain(unsigned int gain)
Sets the microphone gain.
Definition d868uv_codeplug.cc:372
virtual void enableBacklightPermanent()
Sets the backlight to permanent (always on).
Definition d868uv_codeplug.cc:543
bool activeChannelB() const
Returns true if the active channel is VFO B.
Definition d868uv_codeplug.cc:566
void enableRecording(bool enable)
Enables/disables recording.
Definition d868uv_codeplug.cc:517
unsigned int dmrMicGain() const
Returns the mirophone gain.
Definition d868uv_codeplug.cc:368
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition d868uv_codeplug.cc:414
void enableGPS(bool enable)
Enables/disables recording.
Definition d868uv_codeplug.cc:552
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const
Returns the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:432
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:436
bool sidekeysLock() const
Returns true if the sidekeys are locked.
Definition d868uv_codeplug.cc:965
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition d868uv_codeplug.cc:986
void enableVolumeChangePrompt(bool enable)
Enables/disables the volume change prompt.
Definition d868uv_codeplug.cc:697
static constexpr unsigned int size()
Returns the size of the element.
Definition d868uv_codeplug.hh:321
void resetToneMelody(Melody &melody) const
Returns the reset-tone melody.
Definition d868uv_codeplug.cc:857
void setIdleToneMelody(const Melody &melody)
Sets the idle-tone melody.
Definition d868uv_codeplug.cc:847
virtual void setPowerSave(AnytonePowerSaveSettingsExtension::PowerSave mode)
Sets the power-save mode.
Definition d868uv_codeplug.cc:336
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 3.
Definition d868uv_codeplug.cc:445
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const
Returns the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:423
Frequency minVFOScanFrequencyUHF() const
Returns the minimum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:747
virtual AnytoneAudioSettingsExtension::VoxSource voxSource() const
Returns the VOX source.
Definition d868uv_codeplug.cc:630
void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color)
Sets the display color for callsigns.
Definition d868uv_codeplug.cc:900
bool callEndPrompt() const
Returns true if the call-end prompt is enabled.
Definition d868uv_codeplug.cc:666
void clearAutoRepeaterOffsetFrequencyIndexVHF()
Clears the auto-repeater offset frequency index for VHF.
Definition d868uv_codeplug.cc:812
bool recording() const
Returns true if recording is enabled.
Definition d868uv_codeplug.cc:513
void enableVFOModeA(bool enable)
Enables/disables VFO mode for VFO A.
Definition d868uv_codeplug.cc:481
unsigned defaultChannelBIndex() const
Returns the default channel index for VFO B.
Definition d868uv_codeplug.cc:1082
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition d868uv_codeplug.cc:961
virtual void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition d868uv_codeplug.cc:935
virtual void setGPSUpdatePeriod(Interval sec)
Sets the GPS update period in seconds.
Definition d868uv_codeplug.cc:909
void setVFOScanType(AnytoneSettingsExtension::VFOScanType type)
Sets the VFO scan type.
Definition d868uv_codeplug.cc:363
void enableDisplayCall(bool enable)
Enables/disables call display.
Definition d868uv_codeplug.cc:890
void setBrightness(unsigned level)
Sets the display brightness.
Definition d868uv_codeplug.cc:526
bool idleChannelTone() const
Returns true if the idle channel tone is enabled.
Definition d868uv_codeplug.cc:639
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition d868uv_codeplug.cc:1073
void enableActiveChannelB(bool enable)
Enables/disables VFO B as the active channel.
Definition d868uv_codeplug.cc:570
unsigned memoryZoneA() const
Returns the memory zone for VFO A.
Definition d868uv_codeplug.cc:495
virtual AnytonePowerSaveSettingsExtension::PowerSave powerSave() const
Returns the power-save mode.
Definition d868uv_codeplug.cc:332
void setAutoRepeaterMaxFrequencyVHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:1003
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition d868uv_codeplug.cc:1143
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition d868uv_codeplug.cc:1090
void clear()
Resets the general settings.
Definition d868uv_codeplug.cc:318
unsigned defaultZoneIndexA() const
Returns the default zone index (0-based) for VFO A.
Definition d868uv_codeplug.cc:1043
bool callAlert() const
Returns true if call alert is enabled.
Definition d868uv_codeplug.cc:584
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:463
AnytoneSettingsExtension::VFOScanType vfoScanType() const
Returns the VFO scan type.
Definition d868uv_codeplug.cc:359
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1.
Definition d868uv_codeplug.cc:409
void setGPSTimeZone(const QTimeZone &zone)
Sets the GPS time zone.
Definition d868uv_codeplug.cc:597
unsigned autoRepeaterOffsetFrequencyIndexVHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:804
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition d868uv_codeplug.cc:305
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition d868uv_codeplug.cc:1034
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition d868uv_codeplug.cc:1052
Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1008
unsigned brightness() const
Returns the display brightness.
Definition d868uv_codeplug.cc:522
void idleToneMelody(Melody &melody) const
Returns the idle-tone melody.
Definition d868uv_codeplug.cc:837
bool hasAutoRepeaterOffsetFrequencyIndexVHF() const
Returns true if the auto-repeater offset frequency for VHF is set.
Definition d868uv_codeplug.cc:800
virtual unsigned recordingDelay() const
Returns the recording delay in ms.
Definition d868uv_codeplug.cc:877
Frequency maxVFOScanFrequencyVHF() const
Returns the maximum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:774
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionA() const
Returns the auto repeater offset direction for VFO A.
Definition d868uv_codeplug.cc:702
void setCallToneMelody(const Melody &melody)
Sets the call-tone melody.
Definition d868uv_codeplug.cc:827
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition d868uv_codeplug.cc:969
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition d868uv_codeplug.cc:944
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2/B.
Definition d868uv_codeplug.cc:391
virtual void setVOXLevel(unsigned level)
Sets the VOX level.
Definition d868uv_codeplug.cc:345
void enableKeyTone(bool enable)
Enables/disables the key-tone.
Definition d868uv_codeplug.cc:327
bool volumeChangePrompt() const
Returns true if the volume change prompt is enabled.
Definition d868uv_codeplug.cc:693
bool displayCall() const
Returns true if the call is displayed instead of the name.
Definition d868uv_codeplug.cc:886
void callToneMelody(Melody &melody) const
Returns the call-tone melody.
Definition d868uv_codeplug.cc:817
void setMaxVFOScanFrequencyUHF(Frequency hz)
Sets the maximum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:760
virtual unsigned maxHeadPhoneVolume() const
Returns the maximum headphone volume.
Definition d868uv_codeplug.cc:729
virtual unsigned voxLevel() const
Returns the VOX level.
Definition d868uv_codeplug.cc:341
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const
Returns the key function for a short press on the function key 1/A.
Definition d868uv_codeplug.cc:378
void enableVFOModeB(bool enable)
Enables/disables VFO mode for VFO B.
Definition d868uv_codeplug.cc:490
unsigned maxSpeakerVolume() const
Returns the maximum volume.
Definition d868uv_codeplug.cc:675
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition d868uv_codeplug.cc:1025
void enableStartupTone(bool enable)
Enables/disables the startup tone.
Definition d868uv_codeplug.cc:661
virtual Interval voxDelay() const
Returns the VOX delay in ms.
Definition d868uv_codeplug.cc:350
void setDefaultChannelBIndex(unsigned idx)
Sets the default channel index for VFO B.
Definition d868uv_codeplug.cc:1086
void enableCallEndPrompt(bool enable)
Enables/disables the call-end prompt.
Definition d868uv_codeplug.cc:670
void setLongPressDuration(Interval ms)
Sets the long-press duration in ms.
Definition d868uv_codeplug.cc:472
void enableDMRResetTone(bool enable)
Enables/disables the reset tone for digital calls.
Definition d868uv_codeplug.cc:625
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const
Returns the key function for a long press on the function key 3.
Definition d868uv_codeplug.cc:441
bool smsAlert() const
Returns true if SMS alert is enabled.
Definition d868uv_codeplug.cc:557
void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1012
void setMemoryZoneB(unsigned zone)
Sets the memory zone for VFO B.
Definition d868uv_codeplug.cc:508
void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater direction for VFO B.
Definition d868uv_codeplug.cc:1029
bool keyToneEnabled() const
Returns true, if the key tone is enabled.
Definition d868uv_codeplug.cc:323
void enableDMRTalkPermit(bool enable)
Enables/disables the talk permit tone for digital channels.
Definition d868uv_codeplug.cc:607
void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx)
Sets the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:791
Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition d868uv_codeplug.cc:1016
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:454
bool enhanceAudio() const
Returns true if the audio is "enhanced".
Definition d868uv_codeplug.cc:738
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition d868uv_codeplug.cc:1065
QTimeZone gpsTimeZone() const
Returns the GPS time zone.
Definition d868uv_codeplug.cc:593
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const
Returns the key function for a long press on the function key 2.
Definition d868uv_codeplug.cc:459
unsigned memoryZoneB() const
Returns the memory zone for VFO B.
Definition d868uv_codeplug.cc:504
Frequency maxVFOScanFrequencyUHF() const
Returns the maximum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:756
void setMinVFOScanFrequencyVHF(Frequency hz)
Sets the minimum VFO scan frequency for the VHF band in Hz.
Definition d868uv_codeplug.cc:769
void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx)
Sets the auto-repeater offset frequency index for VHF.
Definition d868uv_codeplug.cc:808
bool vfoModeA() const
Returns true if the VFO A is in VFO mode.
Definition d868uv_codeplug.cc:477
bool dmrTalkPermit() const
Returns true if the talk permit tone is enabled for digital channels.
Definition d868uv_codeplug.cc:603
unsigned autoRepeaterOffsetFrequencyIndexUHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:787
void clearAutoRepeaterOffsetFrequencyIndexUHF()
Clears the auto-repeater offset frequency index for UHF.
Definition d868uv_codeplug.cc:795
bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack())
Links the general settings.
Definition d868uv_codeplug.cc:1184
virtual void setVOXSource(AnytoneAudioSettingsExtension::VoxSource source)
Sets the VOX source.
Definition d868uv_codeplug.cc:634
void enableEnhancedAudio(bool enable)
Enables/disables "enhanced" audio.
Definition d868uv_codeplug.cc:742
bool vfoModeB() const
Returns true if the VFO B is in VFO mode.
Definition d868uv_codeplug.cc:486
void enableKnobLock(bool enable)
Enables/disables the knob lock.
Definition d868uv_codeplug.cc:953
bool gps() const
Returns true if GPS is enabled.
Definition d868uv_codeplug.cc:548
bool fmTalkPermit() const
Returns true if the talk permit tone is enabled for digital channels.
Definition d868uv_codeplug.cc:612
virtual bool backlightPermanent() const
Returns true if the backlight is always on.
Definition d868uv_codeplug.cc:531
void enableSubChannel(bool enable)
Enables/disables sub channel.
Definition d868uv_codeplug.cc:579
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:427
bool keyLockForced() const
Returns true if the "professional" key is locked.
Definition d868uv_codeplug.cc:973
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const
Returns the key function for a short press on the function key 3/C.
Definition d868uv_codeplug.cc:396
void setMinVFOScanFrequencyUHF(Frequency hz)
Sets the minimum VFO scan frequency for the UHF band in Hz.
Definition d868uv_codeplug.cc:751
void setLastCallerDisplayMode(AnytoneDisplaySettingsExtension::LastCallerDisplayMode mode)
Sets the last-caller display mode.
Definition d868uv_codeplug.cc:715
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const
Returns the key function for a short press on the function key 1.
Definition d868uv_codeplug.cc:405
void setAutoRepeaterMinFrequencyVHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition d868uv_codeplug.cc:995
void setMenuExitTime(Interval intv)
Sets the menu exit time in seconds.
Definition d868uv_codeplug.cc:652
void enableShowCurrentContact(bool enable)
Enables/disables display of current contact.
Definition d868uv_codeplug.cc:918
virtual void setRXBacklightDuration(Interval sec)
Sets the backlight duration in seconds.
Definition d868uv_codeplug.cc:539
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition d868uv_codeplug.cc:1095
Interval longPressDuration() const
Returns the long-press duration in ms.
Definition d868uv_codeplug.cc:468
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const
Returns the key function for a long press on the function key 1.
Definition d868uv_codeplug.cc:450
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2.
Definition d868uv_codeplug.cc:418
void setDefaultZoneIndexA(unsigned idx)
Sets the default zone (0-based) for VFO A.
Definition d868uv_codeplug.cc:1047
Represents the device specific binary codeplug for Anytone AT-D868UV radios.
Definition d868uv_codeplug.hh:189
virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())
Create RX group lists from codeplug.
Definition d868uv_codeplug.cc:1752
virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition d868uv_codeplug.cc:2075
virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the boot settings section.
Definition d868uv_codeplug.cc:2026
virtual void allocateChannels()
Allocate channels from bitmap.
Definition d868uv_codeplug.cc:1464
virtual void allocate2ToneSettings()
Allocates 2-Tone settings.
Definition d868uv_codeplug.cc:2273
virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode scan lists into codeplug.
Definition d868uv_codeplug.cc:1922
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition d868uv_codeplug.cc:1499
virtual void allocate5ToneSettings()
Allocates 5-Tone settings.
Definition d868uv_codeplug.cc:2244
virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create contacts from codeplug.
Definition d868uv_codeplug.cc:1602
virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition d868uv_codeplug.cc:1983
virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes auto-repeater offset frequencies.
Definition d868uv_codeplug.cc:2185
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:1898
virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack())
Set radio ID from codeplug.
Definition d868uv_codeplug.cc:1701
virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition d868uv_codeplug.cc:2048
virtual void allocateSMSMessages()
Allocate prefab SMS messages.
Definition d868uv_codeplug.cc:2090
virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode zones into codeplug.
Definition d868uv_codeplug.cc:1806
virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode contacts into codeplug.
Definition d868uv_codeplug.cc:1573
virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Link SMS messages.
Definition d868uv_codeplug.cc:2147
virtual void allocateHotKeySettings()
Allocates hot key settings memory section.
Definition d868uv_codeplug.cc:2155
virtual void allocate5ToneIDs()
Allocates all 5-Tone IDs used.
Definition d868uv_codeplug.cc:2228
virtual void allocateScanLists()
Allocate scanlists from bitmaps.
Definition d868uv_codeplug.cc:1904
virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition d868uv_codeplug.cc:1990
virtual void allocateDTMFNumbers()
Allocates DTMF number list memory section.
Definition d868uv_codeplug.cc:2008
virtual void allocateZones()
Allocate zones from bitmaps.
Definition d868uv_codeplug.cc:1793
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition d868uv_codeplug.cc:1519
virtual void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition d868uv_codeplug.cc:1249
virtual void allocateVFOSettings()
Allocate VFO settings.
Definition d868uv_codeplug.cc:1538
virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create analog contacts from codeplug.
Definition d868uv_codeplug.cc:1653
virtual void allocateAlarmSettings()
Allocates alarm settings memory section.
Definition d868uv_codeplug.cc:2214
virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Function to decode a single zone.
Definition d868uv_codeplug.cc:1861
virtual void allocateZoneChannelList()
Allocates zone channel list memory section.
Definition d868uv_codeplug.cc:2002
virtual void allocateRadioIDs()
Allocate radio IDs from bitmaps.
Definition d868uv_codeplug.cc:1673
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:1360
D868UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor constructor.
Definition d868uv_codeplug.cc:1205
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:1218
virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link scan lists.
Definition d868uv_codeplug.cc:1957
virtual void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition d868uv_codeplug.cc:1315
virtual void allocate5ToneFunctions()
Allocates 5-Tone functions.
Definition d868uv_codeplug.cc:2239
virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode analog contacts into codeplug.
Definition d868uv_codeplug.cc:1639
virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the boot settings section.
Definition d868uv_codeplug.cc:2019
virtual void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition d868uv_codeplug.cc:1261
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:1830
virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes auto-repeater offset frequencies.
Definition d868uv_codeplug.cc:2169
virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition d868uv_codeplug.cc:1997
virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes prefab SMS messages.
Definition d868uv_codeplug.cc:2109
virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode radio ID into codeplug.
Definition d868uv_codeplug.cc:1689
virtual void allocateRepeaterOffsetFrequencies()
Allocates repeater offset settings memory section.
Definition d868uv_codeplug.cc:2163
virtual void allocateGPSSystems()
Allocates GPS settings memory section.
Definition d868uv_codeplug.cc:2034
virtual void allocateGeneralSettings()
Allocates general settings memory section.
Definition d868uv_codeplug.cc:1978
virtual void allocateFMBroadcastSettings()
Allocates FM broadcast settings memory section.
Definition d868uv_codeplug.cc:2221
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Link zones.
Definition d868uv_codeplug.cc:1867
virtual void allocateContacts()
Allocate contacts from bitmaps.
Definition d868uv_codeplug.cc:1547
virtual void allocateAnalogContacts()
Allocate analog contacts from bitmaps.
Definition d868uv_codeplug.cc:1623
virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link RX group lists.
Definition d868uv_codeplug.cc:1771
virtual void allocateDTMFSettings()
Allocates DTMF settings.
Definition d868uv_codeplug.cc:2279
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition d868uv_codeplug.cc:1483
virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Create scan lists from codeplug.
Definition d868uv_codeplug.cc:1937
virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Create SMS messages from codeplug.
Definition d868uv_codeplug.cc:2128
virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition d868uv_codeplug.cc:2040
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the downloaded codeplug.
Definition d868uv_codeplug.cc:1402
virtual void allocate2ToneIDs()
Allocates all 2-Tone IDs used.
Definition d868uv_codeplug.cc:2249
virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode RX group lists into codeplug.
Definition d868uv_codeplug.cc:1739
virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack())
Create zones from codeplug.
Definition d868uv_codeplug.cc:1836
virtual void allocate2ToneFunctions()
Allocates 2-Tone functions.
Definition d868uv_codeplug.cc:2261
bool allocateBitmaps()
Allocates the bitmaps.
Definition d868uv_codeplug.cc:1283
virtual void allocateRXGroupLists()
Allocates RX group lists from bitmaps.
Definition d868uv_codeplug.cc:1719
virtual void allocateBootSettings()
Allocates boot settings memory section.
Definition d868uv_codeplug.cc:2014
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:41
This class represents a GPS signalling system within the codeplug.
Definition gpssystem.hh:64
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:398
Internal used offsets within the element.
Definition anytone_codeplug.hh:1182
Internal used offsets within the channel element.
Definition d868uv_codeplug.hh:274
Colors supported by the D868UVE.
Definition d868uv_codeplug.hh:194
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:203
Device specific key functions.
Definition d868uv_codeplug.hh:291
KeyFunctionCode
Encoded key functions.
Definition d868uv_codeplug.hh:300
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition d868uv_codeplug.cc:256
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition d868uv_codeplug.cc:210
Some internal used offsets within the element.
Definition d868uv_codeplug.hh:541
Some limits for the codeplug.
Definition d868uv_codeplug.hh:786
static constexpr unsigned int numZones()
Max number of zones.
Definition d868uv_codeplug.hh:798
static constexpr unsigned int contactsPerBank()
Max number of contacts per bank.
Definition d868uv_codeplug.hh:789
static constexpr unsigned int zoneNameLength()
Max zone name length.
Definition d868uv_codeplug.hh:800
static constexpr unsigned int numRadioIDs()
Max number of radio IDs.
Definition d868uv_codeplug.hh:796
static constexpr unsigned int numTwoToneIDs()
Max number of two-tone IDs.
Definition d868uv_codeplug.hh:804
static constexpr unsigned int contactsPerBlock()
Max number of contacts per block.
Definition d868uv_codeplug.hh:790
static constexpr unsigned int numChannelsPerZone()
Max number of channels per zone.
Definition d868uv_codeplug.hh:799
static constexpr unsigned int numGroupLists()
Max number of group lists.
Definition d868uv_codeplug.hh:793
static constexpr unsigned int numTwoToneFunctions()
Max number of two-tone functions.
Definition d868uv_codeplug.hh:805
static constexpr unsigned int numMessages()
Max number of preset SMS.
Definition d868uv_codeplug.hh:802
static constexpr unsigned int numDTMFContacts()
Max number of DTMF contacts.
Definition d868uv_codeplug.hh:792
static constexpr unsigned int numScanListsPerBank()
Max number of scan lists per bank.
Definition d868uv_codeplug.hh:795
static constexpr unsigned int numScanLists()
Max number of scan lists.
Definition d868uv_codeplug.hh:794
static constexpr unsigned int numContacts()
Max number of contacts.
Definition d868uv_codeplug.hh:791
static constexpr unsigned int numChannels()
Max number of channels.
Definition d868uv_codeplug.hh:788
static constexpr unsigned int dmrAPRSSystems()
Max number of DMR APRS systems.
Definition d868uv_codeplug.hh:801
static constexpr unsigned int numMessagePerBank()
Max number of SMS per bank.
Definition d868uv_codeplug.hh:803
static constexpr unsigned int channelsPerBank()
Max number of channels per bank.
Definition d868uv_codeplug.hh:787
Some internal used offsets within the codeplug.
Definition d868uv_codeplug.hh:810
Internal used sizes.
Definition d868uv_codeplug.hh:891
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:11