libdrmconf  0.12.0
A library to program DMR radios.
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 
9 class Channel;
10 class DMRContact;
11 class Zone;
12 class RXGroupList;
13 class ScanList;
14 class GPSSystem;
15 
16 
189 {
190  Q_OBJECT
191 
192 protected:
194  struct Color {
195  public:
197  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
199  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
200 
201  protected:
203  typedef enum {
204  White = 0, Red=1
205  } CodedColor;
206  };
207 
209  struct CTCSS {
210  public:
212  static uint8_t encode(Signaling::Code tone);
214  static Signaling::Code decode(uint8_t code);
215 
216  protected:
219  };
220 
221 public:
229  {
230  protected:
232  ChannelElement(uint8_t *ptr, unsigned size);
233 
234  public:
236  ChannelElement(uint8_t *ptr);
237 
239  virtual bool ranging() const;
241  virtual void enableRanging(bool enable);
243  virtual bool throughMode() const;
245  virtual void enableThroughMode(bool enable);
247  virtual bool dataACK() const;
249  virtual void enableDataACK(bool enable);
250 
252  virtual bool txDigitalAPRS() const;
254  virtual void enableTXDigitalAPRS(bool enable);
256  virtual unsigned digitalAPRSSystemIndex() const;
258  virtual void setDigitalAPRSSystemIndex(unsigned idx);
259 
261  virtual unsigned dmrEncryptionKeyIndex() const;
263  virtual void setDMREncryptionKeyIndex(unsigned idx);
265  virtual bool multipleKeyEncryption() const;
267  virtual void enableMultipleKeyEncryption(bool enable);
269  virtual bool randomKey() const;
271  virtual void enableRandomKey(bool enable);
273  virtual bool sms() const;
275  virtual void enableSMS(bool enable);
276 
278  virtual Channel *toChannelObj(Context &ctx) const;
280  virtual bool linkChannelObj(Channel *c, Context &ctx) const;
282  virtual bool fromChannelObj(const Channel *c, Context &ctx);
283 
284  protected:
288  };
289  };
290 
300  {
301  protected:
303  struct KeyFunction {
304  public:
309 
310  protected:
312  typedef enum {
313  Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
314  Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
315  Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
316  Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
317  HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
318  WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
319  PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
320  ChannelType = 0x22, Ranging = 0x23, ChannelRanging = 0x24, MaxVolume = 0x25, Slot = 0x26
321  } KeyFunctionCode;
322  };
323 
324  protected:
326  GeneralSettingsElement(uint8_t *ptr, unsigned size);
327 
328  public:
330  GeneralSettingsElement(uint8_t *ptr);
331 
333  static constexpr unsigned int size() { return 0x00d0; }
334 
336  void clear();
337 
339  virtual AnytonePowerSaveSettingsExtension::PowerSave powerSave() const;
341  virtual void setPowerSave(AnytonePowerSaveSettingsExtension::PowerSave mode);
342 
344  virtual unsigned voxLevel() const;
346  virtual void setVOXLevel(unsigned level);
348  virtual Interval voxDelay() const;
350  virtual void setVOXDelay(Interval ms);
355  unsigned int dmrMicGain() const;
356  void setDMRMicGain(unsigned int gain);
357  unsigned maxSpeakerVolume() const;
358  void setMaxSpeakerVolume(unsigned level);
360  virtual unsigned maxHeadPhoneVolume() const;
362  virtual void setMaxHeadPhoneVolume(unsigned max);
363  bool enhanceAudio() const;
364  void enableEnhancedAudio(bool enable);
365  bool recording() const;
366  void enableRecording(bool enable);
368  virtual unsigned recordingDelay() const;
370  virtual void setRecodringDelay(unsigned ms);
371 
372 
383 
404  Interval longPressDuration() const;
406 
407  bool vfoModeA() const;
408  void enableVFOModeA(bool enable);
409  bool vfoModeB() const;
410  void enableVFOModeB(bool enable);
411 
412  unsigned memoryZoneA() const;
413  void setMemoryZoneA(unsigned zone);
414  unsigned memoryZoneB() const;
415  void setMemoryZoneB(unsigned zone);
416 
417  bool gps() const;
418  void enableGPS(bool enable);
419  QTimeZone gpsTimeZone() const;
420  void setGPSTimeZone(const QTimeZone &zone);
421  bool getGPSPosition() const;
422  void enableGetGPSPosition(bool enable);
423  bool gpsUnitsImperial() const ;
424  void enableGPSUnitsImperial(bool enable);
426  virtual Interval gpsUpdatePeriod() const;
428  virtual void setGPSUpdatePeriod(Interval sec);
429 
430  bool keyToneEnabled() const;
431  void enableKeyTone(bool enable);
432  bool smsAlert() const;
433  void enableSMSAlert(bool enable);
434  bool callAlert() const;
435  void enableCallAlert(bool enable);
436  bool dmrTalkPermit() const;
437  void enableDMRTalkPermit(bool enable);
438  bool fmTalkPermit() const;
439  void enableFMTalkPermit(bool enable);
440  bool dmrResetTone() const;
441  void enableDMRResetTone(bool enable);
442  bool idleChannelTone() const;
443  void enableIdleChannelTone(bool enable);
444  bool startupTone() const;
445  void enableStartupTone(bool enable);
446  void callToneMelody(Melody &melody) const;
447  void setCallToneMelody(const Melody &melody);
448  void idleToneMelody(Melody &melody) const;
449  void setIdleToneMelody(const Melody &melody);
450  void resetToneMelody(Melody &melody) const;
451  void setResetToneMelody(const Melody &melody);
452 
453  bool activeChannelB() const;
454  void enableActiveChannelB(bool enable);
455 
456  bool subChannel() const;
457  void enableSubChannel(bool enable);
458 
459  Interval menuExitTime() const;
460  void setMenuExitTime(Interval intv);
461 
462  bool callEndPrompt() const;
463  void enableCallEndPrompt(bool enable);
464  bool volumeChangePrompt() const;
465  void enableVolumeChangePrompt(bool enable);
468  bool displayClock() const;
469  void enableDisplayClock(bool enable);
470  bool displayCall() const;
471  void enableDisplayCall(bool enable);
474  bool showLastHeard() const;
475  void enableShowLastHeard(bool enable);
476  unsigned brightness() const;
477  void setBrightness(unsigned level);
479  virtual bool backlightPermanent() const;
481  virtual Interval rxBacklightDuration() const;
483  virtual void setRXBacklightDuration(Interval sec);
485  virtual void enableBacklightPermanent();
486 
492  unsigned autoRepeaterOffsetFrequencyIndexUHF() const;
493  void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx);
496  unsigned autoRepeaterOffsetFrequencyIndexVHF() const;
497  void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx);
507 
508  bool showCurrentContact() const;
509  void enableShowCurrentContact(bool enable);
510 
512  virtual bool keyToneLevelAdjustable() const;
514  virtual unsigned keyToneLevel() const;
516  virtual void setKeyToneLevel(unsigned level);
518  virtual void setKeyToneLevelAdjustable();
519 
520  bool knobLock() const;
521  void enableKnobLock(bool enable);
522  bool keypadLock() const;
523  void enableKeypadLock(bool enable);
524  bool sidekeysLock() const;
525  void enableSidekeysLock(bool enable);
526  bool keyLockForced() const;
527  void enableKeyLockForced(bool enable);
528 
529  bool defaultChannel() const;
530  void enableDefaultChannel(bool enable);
531  unsigned defaultZoneIndexA() const;
532  void setDefaultZoneIndexA(unsigned idx);
533  unsigned defaultZoneIndexB() const;
534  void setDefaultZoneIndexB(unsigned idx);
535  bool defaultChannelAIsVFO() const;
536  unsigned defaultChannelAIndex() const;
537  void setDefaultChannelAIndex(unsigned idx);
539  bool defaultChannelBIsVFO() const;
540  unsigned defaultChannelBIndex() const;
541  void setDefaultChannelBIndex(unsigned idx);
543 
544  bool keepLastCaller() const;
545  void enableKeepLastCaller(bool enable);
546 
547  bool fromConfig(const Flags &flags, Context &ctx);
548  bool updateConfig(Context &ctx);
549  bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack());
550 
551  protected:
555  static constexpr unsigned int enableKeyTone() { return 0x0000; }
556  static constexpr unsigned int powerSaveMode() { return 0x000b; }
557  static constexpr unsigned int voxLevel() { return 0x000c; }
558  static constexpr unsigned int voxDelay() { return 0x000d; }
559  static constexpr unsigned int vfoScanType() { return 0x000e; }
560  static constexpr unsigned int dmrMicGain() { return 0x000f; }
561  static constexpr unsigned int progFuncKeyAShort() { return 0x0010; }
562  static constexpr unsigned int progFuncKeyBShort() { return 0x0011; }
563  static constexpr unsigned int progFuncKeyCShort() { return 0x0012; }
564  static constexpr unsigned int progFuncKey1Short() { return 0x0013; }
565  static constexpr unsigned int progFuncKey2Short() { return 0x0014; }
566  static constexpr unsigned int vfoModeA() { return 0x0015; }
567  static constexpr unsigned int vfoModeB() { return 0x0016; }
568  static constexpr unsigned int memZoneA() { return 0x001f; }
569  static constexpr unsigned int memZoneB() { return 0x0020; }
570  static constexpr unsigned int enableRecoding() { return 0x0022; }
571  static constexpr unsigned int displayBrightness() { return 0x0026; }
572  static constexpr unsigned int backlightDuration() { return 0x0027; }
573  static constexpr unsigned int gpsEnable() { return 0x0028; }
574  static constexpr unsigned int smsAlert() { return 0x0029; }
575  static constexpr unsigned int activeChannelB() { return 0x002c; }
576  static constexpr unsigned int subChannel() { return 0x002d; }
577  static constexpr unsigned int callAlert() { return 0x002f; }
578  static constexpr unsigned int gpsTimeZone() { return 0x0030; }
579  static constexpr unsigned int talkPermit() { return 0x0031; }
580  static constexpr unsigned int dmrResetTone() { return 0x0032; }
581  static constexpr unsigned int voxSource() { return 0x0033; }
582  static constexpr unsigned int idleChannelTone() { return 0x0036; }
583  static constexpr unsigned int menuExitTime() { return 0x0037; }
584  static constexpr unsigned int startupTone() { return 0x0039; }
585  static constexpr unsigned int callEndPrompt() { return 0x003a; }
586  static constexpr unsigned int maxSpeakerVolume() { return 0x003b; }
587  static constexpr unsigned int getGPSPosition() { return 0x003f; }
588  static constexpr unsigned int progFuncKeyALong() { return 0x0041; }
589  static constexpr unsigned int progFuncKeyBLong() { return 0x0042; }
590  static constexpr unsigned int progFuncKeyCLong() { return 0x0043; }
591  static constexpr unsigned int progFuncKey1Long() { return 0x0044; }
592  static constexpr unsigned int progFuncKey2Long() { return 0x0045; }
593  static constexpr unsigned int longPressDuration() { return 0x0046; }
594  static constexpr unsigned int volumeChangePrompt(){ return 0x0047; }
595  static constexpr unsigned int autoRepeaterDirA() { return 0x0048; }
596  static constexpr unsigned int lastCallerDisplay() { return 0x004d; }
597  static constexpr unsigned int showClock() { return 0x0051; }
598  static constexpr unsigned int maxHeadPhoneVolume(){ return 0x0052; }
599  static constexpr unsigned int enhanceAudio() { return 0x0057; }
600  static constexpr unsigned int minVFOScanUHF() { return 0x0058; }
601  static constexpr unsigned int maxVFOScanUHF() { return 0x005c; }
602  static constexpr unsigned int minVFOScanVHF() { return 0x0060; }
603  static constexpr unsigned int maxVFOScanVHF() { return 0x0064; }
604  static constexpr unsigned int autoRepOffsetUHF() { return 0x0068; }
605  static constexpr unsigned int autoRepOffsetVHF() { return 0x0069; }
606  static constexpr unsigned int callToneTones() { return 0x0072; }
607  static constexpr unsigned int callToneDurations() { return 0x007c; }
608  static constexpr unsigned int idleToneTones() { return 0x0086; }
609  static constexpr unsigned int idleToneDurations() { return 0x0090; }
610  static constexpr unsigned int resetToneTones() { return 0x009a; }
611  static constexpr unsigned int resetToneDurations(){ return 0x00a4; }
612  static constexpr unsigned int recordingDelay() { return 0x00ae; }
613  static constexpr unsigned int callDisplayMode() { return 0x00af; }
614  static constexpr unsigned int callColor() { return 0x00b0; }
615  static constexpr unsigned int gpsPeriod() { return 0x00b1; }
616  static constexpr unsigned int showCurrentContact(){ return 0x00b2; }
617  static constexpr unsigned int keyToneLevel() { return 0x00b3; }
618  static constexpr unsigned int gpsUnits() { return 0x00b4; }
619  static constexpr unsigned int knobLock() { return 0x00b5; }
620  static constexpr unsigned int keypadLock() { return 0x00b5; }
621  static constexpr unsigned int sideKeyLock() { return 0x00b5; }
622  static constexpr unsigned int forceKeyLock() { return 0x00b5; }
623  static constexpr unsigned int showLastHeard() { return 0x00b6; }
624  static constexpr unsigned int autoRepMinVHF() { return 0x00b8; }
625  static constexpr unsigned int autoRepMaxVHF() { return 0x00bc; }
626  static constexpr unsigned int autoRepMinUHF() { return 0x00c0; }
627  static constexpr unsigned int autoRepMaxUHF() { return 0x00c4; }
628  static constexpr unsigned int autoRepeaterDirB() { return 0x00c8; }
629  static constexpr unsigned int defaultChannels() { return 0x00ca; }
630  static constexpr unsigned int defaultZoneA() { return 0x00cb; }
631  static constexpr unsigned int defaultZoneB() { return 0x00cc; }
632  static constexpr unsigned int defaultChannelA() { return 0x00cd; }
633  static constexpr unsigned int defaultChannelB() { return 0x00ce; }
634  static constexpr unsigned int keepLastCaller() { return 0x00cf; }
636  };
637  };
638 
639 protected:
641  explicit D868UVCodeplug(const QString &label, QObject *parent = nullptr);
642 
643 public:
645  explicit D868UVCodeplug(QObject *parent = nullptr);
646 
647 protected:
648  bool allocateBitmaps();
649  virtual void setBitmaps(Context &ctx);
650  virtual void allocateUpdated();
651  virtual void allocateForDecoding();
652  virtual void allocateForEncoding();
653 
654  virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
655  virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
656 
658  virtual void allocateChannels();
660  virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
662  virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
664  virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
665 
667  virtual void allocateVFOSettings();
668 
670  virtual void allocateContacts();
672  virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
674  virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack());
675 
677  virtual void allocateAnalogContacts();
679  virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
681  virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack());
682 
684  virtual void allocateRadioIDs();
686  virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
688  virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack());
689 
691  virtual void allocateRXGroupLists();
693  virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
695  virtual bool createRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
697  virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack());
698 
700  virtual void allocateZones();
702  virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
704  virtual bool encodeZone(int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
706  virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack());
708  virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
710  virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
712  virtual bool linkZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack());
713 
715  virtual void allocateScanLists();
717  virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
719  virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
721  virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack());
722 
724  virtual void allocateGeneralSettings();
726  virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
728  virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
730  virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
731 
733  virtual void allocateZoneChannelList();
734 
736  virtual void allocateDTMFNumbers();
737 
739  virtual void allocateBootSettings();
741  virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
743  virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack());
744 
746  virtual void allocateGPSSystems();
748  virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
750  virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
752  virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
753 
755  virtual void allocateSMSMessages();
757  virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
759  virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
761  virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack());
762 
763 
765  virtual void allocateHotKeySettings();
766 
768  virtual void allocateRepeaterOffsetFrequencies();
770  virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
772  virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack());
773 
775  virtual void allocateAlarmSettings();
777  virtual void allocateFMBroadcastSettings();
778 
780  virtual void allocate5ToneIDs();
782  virtual void allocate5ToneFunctions();
784  virtual void allocate5ToneSettings();
785 
787  virtual void allocate2ToneIDs();
789  virtual void allocate2ToneFunctions();
791  virtual void allocate2ToneSettings();
792 
794  virtual void allocateDTMFSettings();
795 
796 public:
798  struct Limit {
799  static constexpr unsigned int channelsPerBank() { return 128; }
800  static constexpr unsigned int numChannels() { return 4000; }
801  static constexpr unsigned int contactsPerBank() { return 1000; }
802  static constexpr unsigned int contactsPerBlock() { return 4; }
803  static constexpr unsigned int numContacts() { return 10000; }
804  static constexpr unsigned int numDTMFContacts() { return 128; }
805  static constexpr unsigned int numGroupLists() { return 250; }
806  static constexpr unsigned int numScanLists() { return 250; }
807  static constexpr unsigned int numScanListsPerBank() { return 16; }
808  static constexpr unsigned int numRadioIDs() { return 250; }
809  // There is no zone element -> hence all attributes must be defied within the codeplug.
810  static constexpr unsigned int numZones() { return 250; }
811  static constexpr unsigned int numChannelsPerZone() { return 250; }
812  static constexpr unsigned int zoneNameLength() { return 16; }
813  static constexpr unsigned int dmrAPRSSystems() { return 8; }
814  static constexpr unsigned int numMessages() { return 100; }
815  static constexpr unsigned int numMessagePerBank() { return 8; }
816  static constexpr unsigned int numTwoToneIDs() { return 24; }
817  static constexpr unsigned int numTwoToneFunctions() { return 16; }
818  };
819 
820 protected:
822  struct Offset {
824  static constexpr unsigned int channelBitmap() { return 0x024c1500; }
825  static constexpr unsigned int channelBanks() { return 0x00800000; }
826  static constexpr unsigned int betweenChannelBanks() { return 0x00040000; }
827  static constexpr unsigned int vfoA() { return 0x00fc0800; }
828  static constexpr unsigned int vfoB() { return 0x00fc0840; }
829 
830  static constexpr unsigned int contactBitmap() { return 0x02640000; }
831  static constexpr unsigned int contactBanks() { return 0x02680000; }
832  static constexpr unsigned int betweenContactBanks() { return 0x00040000; }
833  static constexpr unsigned int betweenContactBlocks() { return 0x00000190; }
834  static constexpr unsigned int contactIndex() { return 0x02600000; }
835  static constexpr unsigned int contactIdTable() { return 0x04340000; }
836 
837  static constexpr unsigned int dtmfContactBytemap() { return 0x02900100; }
838  static constexpr unsigned int dtmfContacts() { return 0x02940000; }
839  static constexpr unsigned int dtmfIndex() { return 0x02900000; }
840  static constexpr unsigned int dtmfSettings() { return 0x024C1080; }
841  static constexpr unsigned int dtmfIDList() { return 0x02500500; }
842 
843  static constexpr unsigned int groupListBitmap() { return 0x025C0B10; }
844  static constexpr unsigned int groupLists() { return 0x02980000; }
845  static constexpr unsigned int betweenGroupLists() { return 0x00000200; }
846 
847  static constexpr unsigned int scanListBitmap() { return 0x024c1340; }
848  static constexpr unsigned int scanListBanks() { return 0x01080000; }
849  static constexpr unsigned int betweenScanLists() { return 0x00000200; }
850  static constexpr unsigned int betweenScanListBanks() { return 0x00040000; }
851 
852  static constexpr unsigned int radioIDBitmap() { return 0x024c1320; }
853  static constexpr unsigned int radioIDs() { return 0x02580000; }
854 
855  static constexpr unsigned int settings() { return 0x02500000; }
856  static constexpr unsigned int bootSettings() { return 0x02500600; }
857  static constexpr unsigned int aprsSettings() { return 0x02501000; }
858  static constexpr unsigned int dmrAPRSMessage() { return 0x02501100; }
859  static constexpr unsigned int zoneChannelList() { return 0x02500100; }
860  static constexpr unsigned int offsetFrequencies() { return 0x024C2000; }
861 
862  static constexpr unsigned int zoneBitmap() { return 0x024c1300; }
863  static constexpr unsigned int zoneChannels() { return 0x01000000; }
864  static constexpr unsigned int betweenZoneChannels() { return 0x00000200; }
865  static constexpr unsigned int zoneNames() { return 0x02540000; }
866  static constexpr unsigned int betweenZoneNames() { return 0x00000020; }
867 
868  static constexpr unsigned int messageBytemap() { return 0x01640800; }
869  static constexpr unsigned int messageBanks() { return 0x02140000; }
870  static constexpr unsigned int betweenMessageBanks() { return 0x00040000; }
871  static constexpr unsigned int messageIndex() { return 0x01640000; }
872 
873  static constexpr unsigned int analogQuickCall() { return 0x025C0000; }
874  static constexpr unsigned int statusMessageBitmap() { return 0x025C0B00; }
875  static constexpr unsigned int statusMessages() { return 0x025C0100; }
876  static constexpr unsigned int hotKeySettings() { return 0x025C0500; }
877 
878  static constexpr unsigned int alarmSettings() { return 0x024C1400; }
879  static constexpr unsigned int alarmSettingsExtension() { return 0x024c1440; }
880 
881  static constexpr unsigned int fiveToneIdBitmap() { return 0x024C0C80; }
882  static constexpr unsigned int fiveToneIdList() { return 0x024C0000; }
883  static constexpr unsigned int fiveToneFunctions() { return 0x024C0D00; }
884  static constexpr unsigned int fiveToneSettings() { return 0x024C1000; }
885 
886  static constexpr unsigned int twoToneIdBitmap() { return 0x024C1280; }
887  static constexpr unsigned int twoToneIdList() { return 0x024C1100; }
888  static constexpr unsigned int twoToneFunctionBitmap(){ return 0x024c2600; }
889  static constexpr unsigned int twoToneFunctionList() { return 0x024c2400; }
890  static constexpr unsigned int twoToneSettings() { return 0x024C1290; }
891 
892  static constexpr unsigned int wfmChannelBitmap() { return 0x02480210; }
893  static constexpr unsigned int wfmChannels() { return 0x02480000; }
894  static constexpr unsigned int wfmVFO() { return 0x02480200; }
895 
896  static constexpr unsigned int dmrEncryptionIDs() { return 0x024C1700; }
897  static constexpr unsigned int dmrEncryptionKeys() { return 0x024C1800; }
899  };
900 
903  struct Size {
905  static constexpr unsigned int zoneName() { return 0x0020; }
906  static constexpr unsigned int zoneChannels() { return 0x0200; }
907  static constexpr unsigned int messageBank() { return 0x0800; }
908  static constexpr unsigned int messageIndex() { return 0x0010; }
910  };
911 };
912 
913 #endif // D868UVCODEPLUG_HH
VoxSource
Source for the VOX.
Definition: anytone_extension.hh:1186
Direction
Encodes the auto-repeater offset sign.
Definition: anytone_extension.hh:1420
Represents the base class for channel encodings in all AnyTone codeplugs.
Definition: anytone_codeplug.hh:92
static constexpr unsigned int size()
Returns the size of the element.
Definition: anytone_codeplug.hh:153
Represents the base class for the settings elements in all AnyTone codeplugs.
Definition: anytone_codeplug.hh:792
Base class interface for all Anytone radio codeplugs.
Definition: anytone_codeplug.hh:20
Color
Possible display colors.
Definition: anytone_extension.hh:975
LastCallerDisplayMode
What to show from the last caller.
Definition: anytone_extension.hh:969
KeyFunction
All possible key functions.
Definition: anytone_extension.hh:586
VFOScanType
Encodes the possible VFO scan types.
Definition: anytone_extension.hh:2149
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:238
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition: codeplug.hh:25
Represents the channel element for AnyTone D868UV devices.
Definition: d868uv_codeplug.hh:229
virtual void enableThroughMode(bool enable)
Enables/disables though mode.
Definition: d868uv_codeplug.cc:127
virtual bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition: d868uv_codeplug.cc:211
ChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d868uv_codeplug.cc:101
virtual void enableSMS(bool enable)
Enables/disables SMS.
Definition: d868uv_codeplug.cc:188
virtual unsigned dmrEncryptionKeyIndex() const
Returns the DMR encryption key index (+1), 0=Off.
Definition: d868uv_codeplug.cc:158
virtual bool multipleKeyEncryption() const
Returns true if multiple key encryption is enabled.
Definition: d868uv_codeplug.cc:167
virtual bool throughMode() const
Returns true if through mode is enabled.
Definition: d868uv_codeplug.cc:123
virtual bool txDigitalAPRS() const
Returns true if TX APRS is enabled.
Definition: d868uv_codeplug.cc:141
virtual bool randomKey() const
Returns true if random key is enabled.
Definition: d868uv_codeplug.cc:176
virtual bool sms() const
Returns true if SMS is enabled.
Definition: d868uv_codeplug.cc:184
virtual bool fromChannelObj(const Channel *c, Context &ctx)
Initializes this codeplug channel from the given generic configuration.
Definition: d868uv_codeplug.cc:228
virtual Channel * toChannelObj(Context &ctx) const
Constructs a generic Channel object from the codeplug channel.
Definition: d868uv_codeplug.cc:193
virtual void setDMREncryptionKeyIndex(unsigned idx)
Sets the DMR encryption key index (+1), 0=Off.
Definition: d868uv_codeplug.cc:162
virtual void enableRanging(bool enable)
Enables/disables ranging.
Definition: d868uv_codeplug.cc:118
virtual void setDigitalAPRSSystemIndex(unsigned idx)
Sets the DMR APRS system index.
Definition: d868uv_codeplug.cc:153
virtual unsigned digitalAPRSSystemIndex() const
Returns the DMR APRS system index.
Definition: d868uv_codeplug.cc:149
virtual void enableDataACK(bool enable)
Enables/disables data ACK.
Definition: d868uv_codeplug.cc:136
virtual bool ranging() const
Returns true if ranging is enabled.
Definition: d868uv_codeplug.cc:114
virtual void enableRandomKey(bool enable)
Enables/disables random key.
Definition: d868uv_codeplug.cc:180
virtual void enableMultipleKeyEncryption(bool enable)
Enables/disables multiple key encryption.
Definition: d868uv_codeplug.cc:171
virtual void enableTXDigitalAPRS(bool enable)
Enables/disables TX APRS.
Definition: d868uv_codeplug.cc:145
virtual bool dataACK() const
Returns true if data ACK is enabled.
Definition: d868uv_codeplug.cc:132
Represents the general config of the radio within the D868UV binary codeplug.
Definition: d868uv_codeplug.hh:300
void enableIdleChannelTone(bool enable)
Enables/disables the idle channel tone.
Definition: d868uv_codeplug.cc:693
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition: d868uv_codeplug.cc:990
bool subChannel() const
Returns true if sub channel is enabled.
Definition: d868uv_codeplug.cc:625
void enableGetGPSPosition(bool enable)
Enables/disables get GPS position.
Definition: d868uv_codeplug.cc:738
Frequency minVFOScanFrequencyVHF() const
Returns the minimum VFO scan frequency for the VHF band in Hz.
Definition: d868uv_codeplug.cc:815
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition: d868uv_codeplug.cc:1154
virtual void setRecodringDelay(unsigned ms)
Sets the recording delay in ms.
Definition: d868uv_codeplug.cc:931
virtual bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition: d868uv_codeplug.cc:973
Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: d868uv_codeplug.cc:1041
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition: d868uv_codeplug.cc:1111
void setAutoRepeaterDirectionA(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater offset direction for VFO A.
Definition: d868uv_codeplug.cc:756
Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: d868uv_codeplug.cc:1049
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition: d868uv_codeplug.cc:1032
void setMaxVFOScanFrequencyVHF(Frequency hz)
Sets the maximum VFO scan frequency for the VHF band in Hz.
Definition: d868uv_codeplug.cc:828
virtual void setMaxHeadPhoneVolume(unsigned max)
Sets the maximum headphone volume.
Definition: d868uv_codeplug.cc:783
void setResetToneMelody(const Melody &melody)
Sets the reset-tone melody.
Definition: d868uv_codeplug.cc:917
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:999
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:774
Interval menuExitTime() const
Returns the menu exit time in seconds.
Definition: d868uv_codeplug.cc:698
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition: d868uv_codeplug.cc:1149
bool startupTone() const
Returns true if the startup tone is enabled.
Definition: d868uv_codeplug.cc:707
bool hasAutoRepeaterOffsetFrequencyIndexUHF() const
Returns true if the auto-repeater offset frequency for UHF is set.
Definition: d868uv_codeplug.cc:833
virtual void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition: d868uv_codeplug.cc:981
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition: d868uv_codeplug.cc:1106
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition: d868uv_codeplug.cc:1128
void enableFMTalkPermit(bool enable)
Enables/disables the talk permit tone for analog channels.
Definition: d868uv_codeplug.cc:666
bool dmrResetTone() const
Returns true if the reset tone is enabled for digital calls.
Definition: d868uv_codeplug.cc:671
void setMaxSpeakerVolume(unsigned level)
Sets the maximum volume.
Definition: d868uv_codeplug.cc:729
AnytoneDisplaySettingsExtension::Color callDisplayColor() const
Returns the display color for callsigns.
Definition: d868uv_codeplug.cc:946
void enableSMSAlert(bool enable)
Enables/disables SMS alert.
Definition: d868uv_codeplug.cc:611
virtual Interval rxBacklightDuration() const
Returns the backlight duration in seconds.
Definition: d868uv_codeplug.cc:585
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition: d868uv_codeplug.cc:1027
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:761
bool keypadLock() const
Returns true if the keypad is locked.
Definition: d868uv_codeplug.cc:1007
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition: d868uv_codeplug.cc:1119
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:770
bool getGPSPosition() const
Returns true if get GPS position is enabled.
Definition: d868uv_codeplug.cc:734
void enableCallAlert(bool enable)
Enables/disables call alert.
Definition: d868uv_codeplug.cc:638
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:1088
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition: d868uv_codeplug.cc:964
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: d868uv_codeplug.cc:1070
virtual unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition: d868uv_codeplug.cc:977
virtual Interval gpsUpdatePeriod() const
Returns the GPS update period in seconds.
Definition: d868uv_codeplug.cc:955
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:593
bool activeChannelB() const
Returns true if the active channel is VFO B.
Definition: d868uv_codeplug.cc:616
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:602
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:1015
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition: d868uv_codeplug.cc:1036
void enableVolumeChangePrompt(bool enable)
Enables/disables the volume change prompt.
Definition: d868uv_codeplug.cc:747
static constexpr unsigned int size()
Returns the size of the element.
Definition: d868uv_codeplug.hh:333
void resetToneMelody(Melody &melody) const
Returns the reset-tone melody.
Definition: d868uv_codeplug.cc:907
void setIdleToneMelody(const Melody &melody)
Sets the idle-tone melody.
Definition: d868uv_codeplug.cc:897
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:797
virtual AnytoneAudioSettingsExtension::VoxSource voxSource() const
Returns the VOX source.
Definition: d868uv_codeplug.cc:680
void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color)
Sets the display color for callsigns.
Definition: d868uv_codeplug.cc:950
bool callEndPrompt() const
Returns true if the call-end prompt is enabled.
Definition: d868uv_codeplug.cc:716
void clearAutoRepeaterOffsetFrequencyIndexVHF()
Clears the auto-repeater offset frequency index for VHF.
Definition: d868uv_codeplug.cc:862
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:1132
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition: d868uv_codeplug.cc:1011
virtual void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition: d868uv_codeplug.cc:985
virtual void setGPSUpdatePeriod(Interval sec)
Sets the GPS update period in seconds.
Definition: d868uv_codeplug.cc:959
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:940
void setBrightness(unsigned level)
Sets the display brightness.
Definition: d868uv_codeplug.cc:576
bool idleChannelTone() const
Returns true if the idle channel tone is enabled.
Definition: d868uv_codeplug.cc:689
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition: d868uv_codeplug.cc:1123
void enableActiveChannelB(bool enable)
Enables/disables VFO B as the active channel.
Definition: d868uv_codeplug.cc:620
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:1053
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition: d868uv_codeplug.cc:1193
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition: d868uv_codeplug.cc:1140
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:1093
bool callAlert() const
Returns true if call alert is enabled.
Definition: d868uv_codeplug.cc:634
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:647
unsigned autoRepeaterOffsetFrequencyIndexVHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition: d868uv_codeplug.cc:854
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d868uv_codeplug.cc:355
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition: d868uv_codeplug.cc:1084
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition: d868uv_codeplug.cc:1102
Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: d868uv_codeplug.cc:1058
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:887
bool hasAutoRepeaterOffsetFrequencyIndexVHF() const
Returns true if the auto-repeater offset frequency for VHF is set.
Definition: d868uv_codeplug.cc:850
virtual unsigned recordingDelay() const
Returns the recording delay in ms.
Definition: d868uv_codeplug.cc:927
Frequency maxVFOScanFrequencyVHF() const
Returns the maximum VFO scan frequency for the VHF band in Hz.
Definition: d868uv_codeplug.cc:824
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionA() const
Returns the auto repeater offset direction for VFO A.
Definition: d868uv_codeplug.cc:752
void setCallToneMelody(const Melody &melody)
Sets the call-tone melody.
Definition: d868uv_codeplug.cc:877
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition: d868uv_codeplug.cc:1019
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition: d868uv_codeplug.cc:994
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:743
bool displayCall() const
Returns true if the call is displayed instead of the name.
Definition: d868uv_codeplug.cc:936
void callToneMelody(Melody &melody) const
Returns the call-tone melody.
Definition: d868uv_codeplug.cc:867
void setMaxVFOScanFrequencyUHF(Frequency hz)
Sets the maximum VFO scan frequency for the UHF band in Hz.
Definition: d868uv_codeplug.cc:810
virtual unsigned maxHeadPhoneVolume() const
Returns the maximum headphone volume.
Definition: d868uv_codeplug.cc:779
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:725
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition: d868uv_codeplug.cc:1075
void enableStartupTone(bool enable)
Enables/disables the startup tone.
Definition: d868uv_codeplug.cc:711
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:1136
void enableCallEndPrompt(bool enable)
Enables/disables the call-end prompt.
Definition: d868uv_codeplug.cc:720
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:675
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:607
void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: d868uv_codeplug.cc:1062
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:1079
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:657
void setAutoRepeaterOffsetFrequenyIndexUHF(unsigned idx)
Sets the auto-repeater offset frequency index for UHF.
Definition: d868uv_codeplug.cc:841
Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: d868uv_codeplug.cc:1066
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:788
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition: d868uv_codeplug.cc:1115
QTimeZone gpsTimeZone() const
Returns the GPS time zone.
Definition: d868uv_codeplug.cc:643
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:806
void setMinVFOScanFrequencyVHF(Frequency hz)
Sets the minimum VFO scan frequency for the VHF band in Hz.
Definition: d868uv_codeplug.cc:819
void setAutoRepeaterOffsetFrequenyIndexVHF(unsigned idx)
Sets the auto-repeater offset frequency index for VHF.
Definition: d868uv_codeplug.cc:858
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:653
unsigned autoRepeaterOffsetFrequencyIndexUHF() const
Returns the auto-repeater offset frequency index for UHF.
Definition: d868uv_codeplug.cc:837
void clearAutoRepeaterOffsetFrequencyIndexUHF()
Clears the auto-repeater offset frequency index for UHF.
Definition: d868uv_codeplug.cc:845
bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err=ErrorStack())
Links the general settings.
Definition: d868uv_codeplug.cc:1234
virtual void setVOXSource(AnytoneAudioSettingsExtension::VoxSource source)
Sets the VOX source.
Definition: d868uv_codeplug.cc:684
void enableEnhancedAudio(bool enable)
Enables/disables "enhanced" audio.
Definition: d868uv_codeplug.cc:792
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:1003
bool gps() const
Returns true if GPS is enabled.
Definition: d868uv_codeplug.cc:598
bool fmTalkPermit() const
Returns true if the talk permit tone is enabled for digital channels.
Definition: d868uv_codeplug.cc:662
virtual bool backlightPermanent() const
Returns true if the backlight is always on.
Definition: d868uv_codeplug.cc:581
void enableSubChannel(bool enable)
Enables/disables sub channel.
Definition: d868uv_codeplug.cc:629
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:1023
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:801
void setLastCallerDisplayMode(AnytoneDisplaySettingsExtension::LastCallerDisplayMode mode)
Sets the last-caller display mode.
Definition: d868uv_codeplug.cc:765
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:1045
void setMenuExitTime(Interval intv)
Sets the menu exit time in seconds.
Definition: d868uv_codeplug.cc:702
void enableShowCurrentContact(bool enable)
Enables/disables display of current contact.
Definition: d868uv_codeplug.cc:968
virtual void setRXBacklightDuration(Interval sec)
Sets the backlight duration in seconds.
Definition: d868uv_codeplug.cc:589
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition: d868uv_codeplug.cc:1145
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:1097
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:1802
virtual bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition: d868uv_codeplug.cc:2125
virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the boot settings section.
Definition: d868uv_codeplug.cc:2076
virtual void allocateChannels()
Allocate channels from bitmap.
Definition: d868uv_codeplug.cc:1514
virtual void allocate2ToneSettings()
Allocates 2-Tone settings.
Definition: d868uv_codeplug.cc:2324
virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode scan lists into codeplug.
Definition: d868uv_codeplug.cc:1972
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition: d868uv_codeplug.cc:1549
virtual void allocate5ToneSettings()
Allocates 5-Tone settings.
Definition: d868uv_codeplug.cc:2295
virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create contacts from codeplug.
Definition: d868uv_codeplug.cc:1652
virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition: d868uv_codeplug.cc:2033
virtual bool decodeRepeaterOffsetFrequencies(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes auto-repeater offset frequencies.
Definition: d868uv_codeplug.cc:2236
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:1948
virtual bool setRadioID(Context &ctx, const ErrorStack &err=ErrorStack())
Set radio ID from codeplug.
Definition: d868uv_codeplug.cc:1751
virtual bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition: d868uv_codeplug.cc:2098
virtual void allocateSMSMessages()
Allocate prefab SMS messages.
Definition: d868uv_codeplug.cc:2140
virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode zones into codeplug.
Definition: d868uv_codeplug.cc:1856
virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode contacts into codeplug.
Definition: d868uv_codeplug.cc:1623
virtual bool linkSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Link SMS messages.
Definition: d868uv_codeplug.cc:2198
virtual void allocateHotKeySettings()
Allocates hot key settings memory section.
Definition: d868uv_codeplug.cc:2206
virtual void allocate5ToneIDs()
Allocates all 5-Tone IDs used.
Definition: d868uv_codeplug.cc:2279
virtual void allocateScanLists()
Allocate scanlists from bitmaps.
Definition: d868uv_codeplug.cc:1954
virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition: d868uv_codeplug.cc:2040
virtual void allocateDTMFNumbers()
Allocates DTMF number list memory section.
Definition: d868uv_codeplug.cc:2058
virtual void allocateZones()
Allocate zones from bitmaps.
Definition: d868uv_codeplug.cc:1843
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition: d868uv_codeplug.cc:1569
virtual void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition: d868uv_codeplug.cc:1299
virtual void allocateVFOSettings()
Allocate VFO settings.
Definition: d868uv_codeplug.cc:1588
virtual bool createAnalogContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Create analog contacts from codeplug.
Definition: d868uv_codeplug.cc:1703
virtual void allocateAlarmSettings()
Allocates alarm settings memory section.
Definition: d868uv_codeplug.cc:2265
virtual bool decodeZone(int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Function to decode a single zone.
Definition: d868uv_codeplug.cc:1911
virtual void allocateZoneChannelList()
Allocates zone channel list memory section.
Definition: d868uv_codeplug.cc:2052
virtual void allocateRadioIDs()
Allocate radio IDs from bitmaps.
Definition: d868uv_codeplug.cc:1723
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:1410
D868UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor constructor.
Definition: d868uv_codeplug.cc:1255
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:1268
virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link scan lists.
Definition: d868uv_codeplug.cc:2007
virtual void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition: d868uv_codeplug.cc:1365
virtual void allocate5ToneFunctions()
Allocates 5-Tone functions.
Definition: d868uv_codeplug.cc:2290
virtual bool encodeAnalogContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode analog contacts into codeplug.
Definition: d868uv_codeplug.cc:1689
virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the boot settings section.
Definition: d868uv_codeplug.cc:2069
virtual void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition: d868uv_codeplug.cc:1311
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:1880
virtual bool encodeRepeaterOffsetFrequencies(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes auto-repeater offset frequencies.
Definition: d868uv_codeplug.cc:2220
virtual bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition: d868uv_codeplug.cc:2047
virtual bool encodeSMSMessages(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes prefab SMS messages.
Definition: d868uv_codeplug.cc:2159
virtual bool encodeRadioID(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode radio ID into codeplug.
Definition: d868uv_codeplug.cc:1739
virtual void allocateRepeaterOffsetFrequencies()
Allocates repeater offset settings memory section.
Definition: d868uv_codeplug.cc:2214
virtual void allocateGPSSystems()
Allocates GPS settings memory section.
Definition: d868uv_codeplug.cc:2084
virtual void allocateGeneralSettings()
Allocates general settings memory section.
Definition: d868uv_codeplug.cc:2028
virtual void allocateFMBroadcastSettings()
Allocates FM broadcast settings memory section.
Definition: d868uv_codeplug.cc:2272
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Link zones.
Definition: d868uv_codeplug.cc:1917
virtual void allocateContacts()
Allocate contacts from bitmaps.
Definition: d868uv_codeplug.cc:1597
virtual void allocateAnalogContacts()
Allocate analog contacts from bitmaps.
Definition: d868uv_codeplug.cc:1673
virtual bool linkRXGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())
Link RX group lists.
Definition: d868uv_codeplug.cc:1821
virtual void allocateDTMFSettings()
Allocates DTMF settings.
Definition: d868uv_codeplug.cc:2330
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition: d868uv_codeplug.cc:1533
virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack())
Create scan lists from codeplug.
Definition: d868uv_codeplug.cc:1987
virtual bool createSMSMessages(Context &ctx, const ErrorStack &err=ErrorStack())
Create SMS messages from codeplug.
Definition: d868uv_codeplug.cc:2178
virtual bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition: d868uv_codeplug.cc:2090
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the downloaded codeplug.
Definition: d868uv_codeplug.cc:1452
virtual void allocate2ToneIDs()
Allocates all 2-Tone IDs used.
Definition: d868uv_codeplug.cc:2300
virtual bool encodeRXGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode RX group lists into codeplug.
Definition: d868uv_codeplug.cc:1789
virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack())
Create zones from codeplug.
Definition: d868uv_codeplug.cc:1886
virtual void allocate2ToneFunctions()
Allocates 2-Tone functions.
Definition: d868uv_codeplug.cc:2312
bool allocateBitmaps()
Allocates the bitmaps.
Definition: d868uv_codeplug.cc:1333
virtual void allocateRXGroupLists()
Allocates RX group lists from bitmaps.
Definition: d868uv_codeplug.cc:1769
virtual void allocateBootSettings()
Allocates boot settings memory section.
Definition: d868uv_codeplug.cc:2064
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
Code
This huge enum lists all possible RX/TX tones that can be associated with analog channels.
Definition: signaling.hh:18
Represents a zone within the generic configuration.
Definition: zone.hh:15
Internal used offsets within the channel element.
Definition: anytone_codeplug.hh:383
Internal used offsets within the element.
Definition: anytone_codeplug.hh:1167
Implements encoding of CTCSS tones.
Definition: d868uv_codeplug.hh:209
static Signaling::Code decode(uint8_t code)
Decodes to Signaling::Code CTCSS tones.
Definition: d868uv_codeplug.cc:60
static Signaling::Code _codeTable[52]
Translation table.
Definition: d868uv_codeplug.hh:218
static uint8_t encode(Signaling::Code tone)
Encodes Signaling::Code CTCSS tones.
Definition: d868uv_codeplug.cc:51
Internal used offsets within the channel element.
Definition: d868uv_codeplug.hh:286
Colors supported by the D868UVE.
Definition: d868uv_codeplug.hh:194
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: d868uv_codeplug.cc:71
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: d868uv_codeplug.cc:81
CodedColor
Encoding of the supported colors.
Definition: d868uv_codeplug.hh:203
Device specific key functions.
Definition: d868uv_codeplug.hh:303
KeyFunctionCode
Encoded key functions.
Definition: d868uv_codeplug.hh:312
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:553
Some limits for the codeplug.
Definition: d868uv_codeplug.hh:798
static constexpr unsigned int numZones()
Max number of zones.
Definition: d868uv_codeplug.hh:810
static constexpr unsigned int contactsPerBank()
Max number of contacts per bank.
Definition: d868uv_codeplug.hh:801
static constexpr unsigned int zoneNameLength()
Max zone name length.
Definition: d868uv_codeplug.hh:812
static constexpr unsigned int numRadioIDs()
Max number of radio IDs.
Definition: d868uv_codeplug.hh:808
static constexpr unsigned int numTwoToneIDs()
Max number of two-tone IDs.
Definition: d868uv_codeplug.hh:816
static constexpr unsigned int contactsPerBlock()
Max number of contacts per block.
Definition: d868uv_codeplug.hh:802
static constexpr unsigned int numChannelsPerZone()
Max number of channels per zone.
Definition: d868uv_codeplug.hh:811
static constexpr unsigned int numGroupLists()
Max number of group lists.
Definition: d868uv_codeplug.hh:805
static constexpr unsigned int numTwoToneFunctions()
Max number of two-tone functions.
Definition: d868uv_codeplug.hh:817
static constexpr unsigned int numMessages()
Max number of preset SMS.
Definition: d868uv_codeplug.hh:814
static constexpr unsigned int numDTMFContacts()
Max number of DTMF contacts.
Definition: d868uv_codeplug.hh:804
static constexpr unsigned int numScanListsPerBank()
Max number of scan lists per bank.
Definition: d868uv_codeplug.hh:807
static constexpr unsigned int numScanLists()
Max number of scan lists.
Definition: d868uv_codeplug.hh:806
static constexpr unsigned int numContacts()
Max number of contacts.
Definition: d868uv_codeplug.hh:803
static constexpr unsigned int numChannels()
Max number of channels.
Definition: d868uv_codeplug.hh:800
static constexpr unsigned int dmrAPRSSystems()
Max number of DMR APRS systems.
Definition: d868uv_codeplug.hh:813
static constexpr unsigned int numMessagePerBank()
Max number of SMS per bank.
Definition: d868uv_codeplug.hh:815
static constexpr unsigned int channelsPerBank()
Max number of channels per bank.
Definition: d868uv_codeplug.hh:799
Some internal used offsets within the codeplug.
Definition: d868uv_codeplug.hh:822
Internal used sizes.
Definition: d868uv_codeplug.hh:903
Helper type to encode frequencies without any rounding error.
Definition: frequency.hh:11