libdrmconf  0.12.0
A library to program DMR radios.
dmr6x2uv_codeplug.hh
1 #ifndef DMR6X2UVCODEPLUG_HH
2 #define DMR6X2UVCODEPLUG_HH
3 
4 #include "d878uv_codeplug.hh"
5 #include "ranges.hh"
6 
7 
191 {
192  Q_OBJECT
193 
194 protected:
196  struct Color {
197  public:
199  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
201  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
202 
203  protected:
205  typedef enum {
206  Orange=0, Red=1, Yellow=2, Green=3, Turquoise=4, Blue=5, White = 6, Black = 7
207  } CodedColor;
208  };
209 
212  public:
214  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
216  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
217 
218  protected:
220  typedef enum {
221  Black = 0, Blue = 1
222  } CodedColor;
223  };
224 
226  struct FontColor {
227  public:
229  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
231  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
232 
233  protected:
235  typedef enum {
236  White = 0, Black = 1, Orange=2, Red=3, Yellow=4, Green=5, Turquoise=6, Blue=7
237  } CodedColor;
238  };
239 
240 public:
249  {
250  protected:
252  struct KeyFunction {
253  public:
258 
259  protected:
261  typedef enum {
262  Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
263  Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
264  Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
265  Dial = 0x10, GPSInformation = 0x11, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
266  HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
267  WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
268  PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
269  ChannelType = 0x22, SimplexRepeater = 0x23, Ranging = 0x24, ChannelRanging = 0x25,
270  MaxVolume = 0x26, Slot = 0x27, Squelch = 0x28, Roaming = 0x29, Zone = 0x2a, RoamingSet = 0x2b,
271  Mute = 0x02c, CtcssDcsSet=0x2d, APRSSet = 0x2e, APRSSend = 0x2f
272  } KeyFunctionCode;
273  };
274 
276  enum FreqStep {
284  FREQ_STEP_50kHz = 7
285  };
286 
289  DTMF_DUR_50ms = 0, DTMF_DUR_100ms = 1, DTMF_DUR_200ms = 2, DTMF_DUR_300ms = 3, DTMF_DUR_500ms = 4
290  };
291 
293  enum class TBSTFrequency {
294  Hz1000 = 0, Hz1450 = 1, Hz1750 = 2, Hz2100 = 3
295  };
296 
298  enum class STEFrequency {
299  Off = 0, Hz55_2 = 1, Hz259_2 = 2
300  };
301 
302 
303  protected:
305  GeneralSettingsElement(uint8_t *ptr, unsigned size);
306 
307  public:
309  explicit GeneralSettingsElement(uint8_t *ptr);
310 
312  static constexpr unsigned int size() { return 0x00e0; }
313 
314  bool idleChannelTone() const;
315  void enableIdleChannelTone(bool enable);
316 
318  virtual unsigned transmitTimeout() const;
320  virtual void setTransmitTimeout(unsigned tot);
321 
326 
328  virtual Frequency vfoFrequencyStep() const;
330  virtual void setVFOFrequencyStep(Frequency kHz);
331 
352 
353  bool vfoModeA() const;
354  void enableVFOModeA(bool enable);
355  bool vfoModeB() const;
356  void enableVFOModeB(bool enable);
357 
364  virtual double steFrequency() const;
367  virtual void setSTEFrequency(double freq);
368 
370  virtual Interval groupCallHangTime() const;
372  virtual void setGroupCallHangTime(Interval sec);
374  virtual Interval privateCallHangTime() const;
376  virtual void setPrivateCallHangTime(Interval sec);
377 
379  virtual Interval preWaveDelay() const;
381  virtual void setPreWaveDelay(Interval ms);
383  virtual Interval wakeHeadPeriod() const;
385  virtual void setWakeHeadPeriod(Interval ms);
386 
388  virtual unsigned wfmChannelIndex() const;
390  virtual void setWFMChannelIndex(unsigned idx);
392  virtual bool wfmVFOEnabled() const;
394  virtual void enableWFMVFO(bool enable);
395 
397  virtual unsigned dtmfToneDuration() const;
399  virtual void setDTMFToneDuration(unsigned ms);
400 
402  virtual bool manDown() const;
404  virtual void enableManDown(bool enable);
405 
407  virtual bool wfmMonitor() const;
409  virtual void enableWFMMonitor(bool enable);
410 
412  virtual Frequency tbstFrequency() const;
414  virtual void setTBSTFrequency(Frequency freq);
415 
417  virtual bool proMode() const;
419  virtual void enableProMode(bool enable);
420 
421  bool keyToneEnabled() const;
422  void enableKeyTone(bool enable);
423 
425  virtual bool filterOwnID() const;
427  virtual void enableFilterOwnID(bool enable);
428 
430  virtual bool remoteStunKill() const;
432  virtual void enableRemoteStunKill(bool enable);
434  virtual bool remoteMonitor() const;
436  virtual void enableRemoteMonitor(bool enable);
437 
439  virtual bool selectTXContactEnabled() const;
441  virtual void enableSelectTXContact(bool enable);
442 
444  virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const;
446  virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match);
448  virtual bool monitorColorCodeMatch() const;
450  virtual void enableMonitorColorCodeMatch(bool enable);
452  virtual bool monitorIDMatch() const;
454  virtual void enableMonitorIDMatch(bool enable);
456  virtual bool monitorTimeSlotHold() const;
458  virtual void enableMonitorTimeSlotHold(bool enable);
459 
461  virtual Interval manDownDelay() const;
463  virtual void setManDownDelay(Interval sec);
464 
466  virtual unsigned fmCallHold() const;
468  virtual void setFMCallHold(unsigned sec);
469 
471  virtual bool gpsMessageEnabled() const;
473  virtual void enableGPSMessage(bool enable);
474 
476  virtual bool maintainCallChannel() const;
478  virtual void enableMaintainCallChannel(bool enable);
479 
481  virtual unsigned priorityZoneAIndex() const;
483  virtual void setPriorityZoneAIndex(unsigned idx);
485  virtual unsigned priorityZoneBIndex() const;
487  virtual void setPriorityZoneBIndex(unsigned idx);
488 
490  virtual bool smsConfirmEnabled() const;
492  virtual void enableSMSConfirm(bool enable);
493 
495  virtual bool simplexRepeaterEnabled() const;
497  virtual void enableSimplexRepeater(bool enable);
498 
499  Interval gpsUpdatePeriod() const;
500  void setGPSUpdatePeriod(Interval sec);
501 
504  virtual bool monitorSimplexRepeaterEnabled() const;
506  virtual void enableMonitorSimplexRepeater(bool enable);
507 
508  bool showCurrentContact() const;
509  void enableShowCurrentContact(bool enable);
510 
511  bool keyToneLevelAdjustable() const;
512  unsigned keyToneLevel() const;
513  void setKeyToneLevel(unsigned level);
515 
516  bool knobLock() const;
517  void enableKnobLock(bool enable);
518  bool keypadLock() const;
519  void enableKeypadLock(bool enable);
520  bool sidekeysLock() const;
521  void enableSidekeysLock(bool enable);
522  bool keyLockForced() const;
523  void enableKeyLockForced(bool enable);
524 
529 
530  bool showLastHeard() const;
531  void enableShowLastHeard(bool enable);
532 
534  virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const;
536  virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt);
537 
538  bool gpsUnitsImperial() const;
539  void enableGPSUnitsImperial(bool enable);
540 
549 
552 
554  virtual bool fmSendIDAndContact() const;
556  virtual void enableFMSendIDAndContact(bool enable);
557 
558  bool defaultChannel() const;
559  void enableDefaultChannel(bool enable);
560  unsigned defaultZoneIndexA() const;
561  void setDefaultZoneIndexA(unsigned idx);
562  unsigned defaultZoneIndexB() const;
563  void setDefaultZoneIndexB(unsigned idx);
564  bool defaultChannelAIsVFO() const;
565  unsigned defaultChannelAIndex() const;
566  void setDefaultChannelAIndex(unsigned idx);
568  bool defaultChannelBIsVFO() const;
569  unsigned defaultChannelBIndex() const;
570  void setDefaultChannelBIndex(unsigned idx);
572 
573  bool keepLastCaller() const;
574  void enableKeepLastCaller(bool enable);
575 
578 
583 
585  virtual unsigned int manualDialedGroupCallHangTime() const;
587  virtual void setManualDialedGroupCallHangTime(unsigned int dur);
589  virtual unsigned int manualDialedPrivateCallHangTime() const;
591  virtual void setManualDialedPrivateCallHangTime(unsigned int dur);
592 
593 
594  bool fromConfig(const Flags &flags, Context &ctx);
595  bool updateConfig(Context &ctx);
596 
597  protected:
601  static constexpr unsigned int idleChannelTone() { return 0x0000; }
602  static constexpr unsigned int transmitTimeout() { return 0x0004; }
603  static constexpr unsigned int language() { return 0x0005; }
604  static constexpr unsigned int vfoFrequencyStep() { return 0x0008; }
605  static constexpr unsigned int vfoModeB() { return 0x0015; }
606  static constexpr unsigned int vfoModeA() { return 0x0016; }
607  static constexpr unsigned int steType() { return 0x0017; }
608  static constexpr unsigned int steFrequency() { return 0x0018; }
609  static constexpr unsigned int groupCallHangTime() { return 0x0019; }
610  static constexpr unsigned int privateCallHangTime() { return 0x001a; }
611  static constexpr unsigned int preWaveDelay() { return 0x001b; }
612  static constexpr unsigned int wakeHeadPeriod() { return 0x001c; }
613  static constexpr unsigned int wfmChannelIndex() { return 0x001d; }
614  static constexpr unsigned int wfmVFOEnabled() { return 0x001e; }
615  static constexpr unsigned int dtmfToneDuration() { return 0x0023; }
616  static constexpr unsigned int manDown() { return 0x0024; }
617  static constexpr unsigned int wfmMonitor() { return 0x002b; }
618  static constexpr unsigned int tbstFrequency() { return 0x002e; }
619  static constexpr unsigned int proMode() { return 0x0034; }
620  static constexpr unsigned int enableKeyTone() { return 0x0036; }
621  static constexpr unsigned int filterOwnID() { return 0x0038; }
622  static constexpr unsigned int remoteStunKill() { return 0x003c; }
623  static constexpr unsigned int remoteMonitor() { return 0x003e; }
624  static constexpr unsigned int selectTXContact() { return 0x0040; }
625  static constexpr unsigned int monSlotMatch() { return 0x0049; }
626  static constexpr unsigned int monColorCodeMatch() { return 0x004a; }
627  static constexpr unsigned int monIDMatch() { return 0x004b; }
628  static constexpr unsigned int monTimeSlotHold() { return 0x004c; }
629  static constexpr unsigned int manDownDelay() { return 0x004f; }
630  static constexpr unsigned int fmCallHold() { return 0x0050; }
631  static constexpr unsigned int enableGPSMessage() { return 0x0053; }
632  static constexpr unsigned int maintainCallChannel() { return 0x006e; }
633  static constexpr unsigned int priorityZoneA() { return 0x006f; }
634  static constexpr unsigned int priorityZoneB() { return 0x0070; }
635  static constexpr unsigned int smsConfirm() { return 0x0071; }
636  static constexpr unsigned int simplexRepEnable() { return 0x00b1; }
637  static constexpr unsigned int gpsUpdatePeriod() { return 0x00b2; }
638  static constexpr unsigned int simplxRepSpeaker() { return 0x00b3; }
639  static constexpr unsigned int showContact() { return 0x00b4; }
640  static constexpr unsigned int keyToneLevel() { return 0x00b5; }
641  static constexpr unsigned int knobLock() { return 0x00b6; }
642  static constexpr unsigned int keypadLock() { return 0x00b6; }
643  static constexpr unsigned int sideKeyLock() { return 0x00b6; }
644  static constexpr unsigned int forceKeyLock() { return 0x00b6; }
645  static constexpr unsigned int simplxRepSlot() { return 0x00b7; }
646  static constexpr unsigned int showLastHeard() { return 0x00b8; }
647  static constexpr unsigned int smsFormat() { return 0x00b9; }
648  static constexpr unsigned int gpsUnits() { return 0x00ba; }
649  static constexpr unsigned int autoRepMinVHF() { return 0x00bc; }
650  static constexpr unsigned int autoRepMaxVHF() { return 0x00c0; }
651  static constexpr unsigned int autoRepMinUHF() { return 0x00c4; }
652  static constexpr unsigned int autoRepMaxUHF() { return 0x00c8; }
653  static constexpr unsigned int autoRepeaterDirB() { return 0x00cc; }
654  static constexpr unsigned int fmSendIDAndContact() { return 0x00cd; }
655  static constexpr unsigned int defaultChannels() { return 0x00ce; }
656  static constexpr unsigned int defaultZoneA() { return 0x00cf; }
657  static constexpr unsigned int defaultZoneB() { return 0x00d0; }
658  static constexpr unsigned int defaultChannelA() { return 0x00d1; }
659  static constexpr unsigned int defaultChannelB() { return 0x00d2; }
660  static constexpr unsigned int keepLastCaller() { return 0x00d3; }
661  static constexpr unsigned int rxBacklightDuration() { return 0x00d4; }
662  static constexpr unsigned int standbyBackground() { return 0x00d5; }
663  static constexpr unsigned int manGrpCallHangTime() { return 0x00d6; }
664  static constexpr unsigned int manPrvCallHangTime() { return 0x00d7; }
666  };
667 
668  };
669 
675  {
676  protected:
678  ExtendedSettingsElement(uint8_t *ptr, unsigned size);
679 
680  public:
682  explicit ExtendedSettingsElement(uint8_t *ptr);
683 
685  static constexpr unsigned int size() { return 0x0030; }
686 
688  void clear();
689 
690  bool sendTalkerAlias() const;
691  void enableSendTalkerAlias(bool enable);
692 
693  AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const;
694  void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource source);
695  AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const;
696  void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding);
697 
702 
704  virtual bool customChannelBackgroundEnabled() const;
706  virtual void enableCustomChannelBackground(bool enable);
707 
709  virtual bool autoRoamingEnabled() const;
711  virtual void enableAutoRoaming(bool enable);
712 
714  virtual bool repeaterRangeCheckEnabled() const;
716  virtual void enableRepeaterRangeCheck(bool enable);
718  virtual unsigned int repeaterCheckNumNotifications() const;
720  virtual void setRepeaterCheckNumNotifications(unsigned int n);
722  virtual Interval repeaterRangeCheckInterval() const;
724  virtual void setRepeaterRangeCheckInterval(Interval intv);
730  virtual unsigned int repeaterRangeCheckCount() const;
732  virtual void setRepeaterRangeCheckCount(unsigned int n);
733 
735  virtual unsigned int defaultRoamingZoneIndex() const;
737  virtual void setDefaultRoamingZoneIndex(unsigned int index);
743  virtual Interval autoRoamPeriod() const;
745  virtual void setAutoRoamPeriod(Interval minutes);
747  virtual Interval autoRoamDelay() const;
749  virtual void setAutoRoamDelay(Interval sec);
754 
756  virtual Interval muteTimer() const;
758  virtual void setMuteTimer(Interval minutes);
759 
761  virtual AnytoneDMRSettingsExtension::EncryptionType encryptionType() const;
763  virtual void setEncryptionType(AnytoneDMRSettingsExtension::EncryptionType type);
764 
775 
776  bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
777  bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack());
778  bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack());
779 
780  public:
782  struct Limit {
784  static constexpr IntRange repRangeReminder() { return {1, 10}; }
786  static constexpr TimeRange rangeCheckInterval() {
788  }
790  static constexpr IntRange repeaterReconnections() { return {3,5}; }
792  static constexpr TimeRange autoRoamingInterval() {
794  }
796  static constexpr TimeRange autoRoamDelay() {
798  }
800  static constexpr TimeRange muteTimer() {
802  }
803  };
804 
805  protected:
807  struct Offset {
809  static constexpr unsigned int sendTalkerAlias() { return 0x0000; }
810  static constexpr unsigned int talkerAliasDisplay() { return 0x0001; }
811  static constexpr unsigned int talkerAliasEncoding() { return 0x0002; }
812  static constexpr unsigned int fontColor() { return 0x0003; }
813  static constexpr unsigned int customChannelBackground() { return 0x0004; }
814  static constexpr unsigned int defaultRoamingZone() { return 0x0005; }
815  static constexpr unsigned int roaming() { return 0x0006; }
816  static constexpr unsigned int repRangeCheck() { return 0x0007; }
817  static constexpr unsigned int repRangeAlert() { return 0x0008; }
818  static constexpr unsigned int repRangeReminder() { return 0x0009; }
819  static constexpr unsigned int rangeCheckInterval() { return 0x000a; }
820  static constexpr unsigned int rangeCheckCount() { return 0x000b; }
821  static constexpr unsigned int roamStartCondition() { return 0x000c; }
822  static constexpr unsigned int autoRoamPeriod() { return 0x000d; }
823  static constexpr unsigned int autoRoamDelay() { return 0x000e; }
824  static constexpr unsigned int roamReturnCondition() { return 0x000f; }
825  static constexpr unsigned int muteDelay() { return 0x0010; }
826  static constexpr unsigned int encryptionType() { return 0x0011; }
827  static constexpr unsigned int zoneANameColor() { return 0x0012; }
828  static constexpr unsigned int zoneBNameColor() { return 0x0013; }
829  static constexpr unsigned int channelANameColor() { return 0x0014; }
830  static constexpr unsigned int channelBNameColor() { return 0x0015; }
832  };
833  };
834 
842  {
843  protected:
845  ChannelElement(uint8_t *ptr, unsigned size);
846 
847  public:
849  ChannelElement(uint8_t *ptr);
850 
852  bool hasScanListIndex() const;
854  unsigned scanListIndex() const;
856  void setScanListIndex(unsigned idx);
858  void clearScanListIndex();
859 
861  virtual bool hasScanListIndex(unsigned int n) const;
863  virtual unsigned scanListIndex(unsigned int n) const;
865  virtual void setScanListIndex(unsigned int n, unsigned idx);
867  virtual void clearScanListIndex(unsigned int n);
868 
870  virtual bool roamingEnabled() const;
872  virtual void enableRoaming(bool enable);
873 
875  bool ranging() const;
877  void enableRanging(bool enable);
878 
879  };
880 
887  {
888  protected:
890  APRSSettingsElement(uint8_t *ptr, unsigned size);
891 
893  enum class SignalingType {
894  Off=0, CTCSS=1, DCS=2
895  };
896 
897  public:
899  explicit APRSSettingsElement(uint8_t *ptr);
900 
902  static constexpr unsigned int size() { return 0x00a0; }
903 
905  void clear();
906  bool isValid() const;
907 
909  virtual Frequency fmFrequency() const;
911  virtual void setFMFrequency(Frequency f);
912 
914  virtual unsigned fmTXDelay() const;
916  virtual void setFMTXDelay(unsigned ms);
917 
919  virtual Signaling::Code txTone() const;
921  virtual void setTXTone(Signaling::Code code);
922 
924  virtual Interval manualTXInterval() const;
926  virtual void setManualTXInterval(Interval sec);
927 
929  virtual bool autoTX() const;
931  virtual Interval autoTXInterval() const;
933  virtual void setAutoTXInterval(Interval sec);
935  virtual void disableAutoTX();
936 
938  virtual bool fixedLocationEnabled() const;
940  virtual QGeoCoordinate fixedLocation() const;
942  virtual void setFixedLocation(QGeoCoordinate &loc);
944  virtual void disableFixedLocation();
945 
947  virtual QString destination() const;
949  virtual unsigned destinationSSID() const;
951  virtual void setDestination(const QString &call, unsigned ssid);
953  virtual QString source() const;
955  virtual unsigned sourceSSID() const;
957  virtual void setSource(const QString &call, unsigned ssid);
958 
960  virtual QString path() const;
962  virtual void setPath(const QString &path);
963 
965  virtual APRSSystem::Icon icon() const;
967  virtual void setIcon(APRSSystem::Icon icon);
968 
970  virtual Channel::Power power() const;
972  virtual void setPower(Channel::Power power);
973 
975  virtual Interval fmPreWaveDelay() const;
977  virtual void setFMPreWaveDelay(Interval ms);
978 
980  virtual bool dmrChannelIsSelected(unsigned n) const;
982  virtual unsigned dmrChannelIndex(unsigned n) const;
984  virtual void setDMRChannelIndex(unsigned n, unsigned idx);
986  virtual void setDMRChannelSelected(unsigned n);
987 
989  virtual unsigned dmrDestination(unsigned n) const;
991  virtual void setDMRDestination(unsigned n, unsigned idx);
992 
994  virtual DMRContact::Type dmrCallType(unsigned n) const;
996  virtual void setDMRCallType(unsigned n, DMRContact::Type type);
997 
999  virtual bool dmrTimeSlotOverride(unsigned n);
1001  virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const;
1003  virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts);
1005  virtual void clearDMRTimeSlotOverride(unsigned n);
1006 
1008  virtual bool dmrRoaming() const;
1010  virtual void enableDMRRoaming(bool enable);
1011 
1013  virtual Interval dmrPreWaveDelay() const;
1015  virtual void setDMRPreWaveDelay(Interval ms);
1016 
1018  virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx,
1019  const ErrorStack &err=ErrorStack());
1021  virtual APRSSystem *toFMAPRSSystem();
1024  virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx);
1025 
1027  virtual bool fromDMRAPRSSystems(Context &ctx);
1029  virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx);
1031  virtual GPSSystem *toDMRAPRSSystemObj(int idx) const;
1033  virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const;
1034 
1035  public:
1037  struct Limit {
1039  static constexpr unsigned int callLength() { return 0x0006; }
1041  static constexpr unsigned int pathLength() { return 0x0020; }
1043  static constexpr unsigned int dmrSystems() { return 0x0008; }
1044  };
1045 
1046  protected:
1048  struct Offset {
1050  static constexpr unsigned int fmFrequency() { return 0x0001; }
1051  static constexpr unsigned int fmTXDelay() { return 0x0005; }
1052  static constexpr unsigned int fmSigType() { return 0x0006; }
1053  static constexpr unsigned int fmCTCSS() { return 0x0007; }
1054  static constexpr unsigned int fmDCS() { return 0x0008; }
1055  static constexpr unsigned int manualTXInterval() { return 0x000a; }
1056  static constexpr unsigned int autoTXInterval() { return 0x000b; }
1057  static constexpr unsigned int fmTXMonitor() { return 0x000c; }
1058  static constexpr unsigned int fixedLocation() { return 0x000d; }
1059  static constexpr unsigned int fixedLatDeg() { return 0x000e; }
1060  static constexpr unsigned int fixedLatMin() { return 0x000f; }
1061  static constexpr unsigned int fixedLatSec() { return 0x0010; }
1062  static constexpr unsigned int fixedLatSouth() { return 0x0011; }
1063  static constexpr unsigned int fixedLonDeg() { return 0x0012; }
1064  static constexpr unsigned int fixedLonMin() { return 0x0013; }
1065  static constexpr unsigned int fixedLonSec() { return 0x0014; }
1066  static constexpr unsigned int fixedLonWest() { return 0x0015; }
1067  static constexpr unsigned int destinationCall() { return 0x0016; }
1068  static constexpr unsigned int destinationSSID() { return 0x001c; }
1069  static constexpr unsigned int sourceCall() { return 0x001d; }
1070  static constexpr unsigned int sourceSSID() { return 0x0023; }
1071  static constexpr unsigned int path() { return 0x0024; }
1072  static constexpr unsigned int symbolTable() { return 0x0039; }
1073  static constexpr unsigned int symbol() { return 0x003a; }
1074  static constexpr unsigned int fmPower() { return 0x003b; }
1075  static constexpr unsigned int fmPrewaveDelay() { return 0x003c; }
1076  static constexpr unsigned int dmrChannelIndices() { return 0x0040; }
1077  static constexpr unsigned int betweenDMRChannelIndices() { return 0x0002; }
1078  static constexpr unsigned int dmrDestinations() { return 0x0050; }
1079  static constexpr unsigned int betweenDMRDestinations() { return 0x0004; }
1080  static constexpr unsigned int dmrCallTypes() { return 0x0070; }
1081  static constexpr unsigned int betweenDMRCallTypes() { return 0x0001; }
1082  static constexpr unsigned int roamingSupport() { return 0x0078; }
1083  static constexpr unsigned int dmrTimeSlots() { return 0x0079; }
1084  static constexpr unsigned int betweenDMRTimeSlots() { return 0x0001; }
1085  static constexpr unsigned int dmrPrewaveDelay() { return 0x0081; }
1087  };
1088  };
1089 
1098 
1099 public:
1101  explicit DMR6X2UVCodeplug(const QString &label, QObject *parent=nullptr);
1102 
1103 public:
1105  explicit DMR6X2UVCodeplug(QObject *parent=nullptr);
1106 
1107 protected:
1108  bool allocateBitmaps();
1109  void setBitmaps(Context &ctx);
1110  void allocateForDecoding();
1111  void allocateUpdated();
1112  void allocateForEncoding();
1113 
1114  bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1115  bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1116 
1117  void allocateGeneralSettings();
1118  bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1119  bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1120  bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1121 
1122  virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1123  virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1124  virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1125 
1126  void allocateGPSSystems();
1127  bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1128  bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1129  bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1130 
1132  virtual void allocateRoaming();
1134  virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1136  virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1138  virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1139 
1140 public:
1142  struct Limit : public D868UVCodeplug::Limit {
1144  static constexpr unsigned int fmAPRSMessage() { return 60; }
1146  static constexpr unsigned int roamingChannels() { return 250; }
1148  static constexpr unsigned int roamingZones() { return 64; }
1149  };
1150 
1151 protected:
1155  static constexpr unsigned int roamingChannelBitmap() { return 0x01042000; }
1156  static constexpr unsigned int roamingChannels() { return 0x01040000; }
1157  static constexpr unsigned int roamingZoneBitmap() { return 0x01042080; }
1158  static constexpr unsigned int roamingZones() { return 0x01043000; }
1159 
1160  static constexpr unsigned int fmAPRSMessage() { return 0x02501200; }
1161  static constexpr unsigned int fmAPRSFrequencyNames() { return 0x02502000; }
1162  static constexpr unsigned int settingsExtension() { return 0x02501400; }
1164  };
1165 
1167  struct Size: public D868UVCodeplug::Size {
1169  static constexpr unsigned int fmAPRSMessage() { return 0x00000040; }
1171  };
1172 };
1173 
1174 #endif // DMR6X2UVCODEPLUG_HH
Represents an APRS system within the generic config.
Definition: gpssystem.hh:132
Icon
All implemented APRS icons.
Definition: gpssystem.hh:151
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 extended settings element in many AnyTone codeplugs.
Definition: anytone_codeplug.hh:1187
virtual bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition: anytone_codeplug.cc:4510
Color
Possible display colors.
Definition: anytone_extension.hh:975
Language
Possible UI languages.
Definition: anytone_extension.hh:981
KeyFunction
All possible key functions.
Definition: anytone_extension.hh:586
RoamStart
Possible roaming start conditions.
Definition: anytone_extension.hh:1862
OutOfRangeAlert
Possible repeater out-of-range alerts.
Definition: anytone_extension.hh:1868
STEType
All possible STE (squelch tail eliminate) types.
Definition: anytone_extension.hh:2167
TimeSlot
Possible simplex repeater time-slots.
Definition: anytone_extension.hh:2012
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition: channel.hh:61
Base class for all codeplug contexts.
Definition: codeplug.hh:238
Represents the abstract base class of all codeplug elements.
Definition: codeplug.hh:51
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition: codeplug.hh:25
Represents the general config of the radio within the D868UV binary codeplug.
Definition: d868uv_codeplug.hh:300
Represents the device specific binary codeplug for Anytone AT-D868UV radios.
Definition: d868uv_codeplug.hh:189
Represents the bitmap, indicating which roaming channel is valid.
Definition: d878uv_codeplug.hh:1650
Implements the binary representation of a roaming channel within the codeplug.
Definition: d878uv_codeplug.hh:1568
Represents the bitmap, indicating which roaming zone is valid.
Definition: d878uv_codeplug.hh:1724
Represents a roaming zone within the binary codeplug.
Definition: d878uv_codeplug.hh:1668
Represents the APRS settings within the binary DMR-6X2UV codeplug.
Definition: dmr6x2uv_codeplug.hh:887
virtual Frequency fmFrequency() const
Returns the FM APRS frequency.
Definition: dmr6x2uv_codeplug.cc:1565
virtual void setIcon(APRSSystem::Icon icon)
Sets the APRS icon.
Definition: dmr6x2uv_codeplug.cc:1730
virtual bool dmrTimeSlotOverride(unsigned n)
Returns true if the n-th system overrides the channel time-slot.
Definition: dmr6x2uv_codeplug.cc:1810
virtual QString path() const
Returns the path string.
Definition: dmr6x2uv_codeplug.cc:1717
virtual Interval autoTXInterval() const
Returns the auto TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1627
virtual DMRContact::Type dmrCallType(unsigned n) const
Returns the call type for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1792
virtual QString source() const
Returns the source call.
Definition: dmr6x2uv_codeplug.cc:1701
virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx)
Encodes the given GPS system.
Definition: dmr6x2uv_codeplug.cc:1910
virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const
Returns the time slot if overridden (only valid if timeSlot returns true).
Definition: dmr6x2uv_codeplug.cc:1814
SignalingType
Possible settings for the FM APRS subtone type.
Definition: dmr6x2uv_codeplug.hh:893
virtual unsigned fmTXDelay() const
Returns the TX delay in ms.
Definition: dmr6x2uv_codeplug.cc:1574
virtual void setFixedLocation(QGeoCoordinate &loc)
Sets the fixed location to send.
Definition: dmr6x2uv_codeplug.cc:1658
static constexpr unsigned int size()
The size of the element.
Definition: dmr6x2uv_codeplug.hh:902
virtual void setFMTXDelay(unsigned ms)
Sets the TX delay in ms.
Definition: dmr6x2uv_codeplug.cc:1578
virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx, const ErrorStack &err=ErrorStack())
Configures this APRS system from the given generic config.
Definition: dmr6x2uv_codeplug.cc:1852
virtual void disableFixedLocation()
Disables sending a fixed location.
Definition: dmr6x2uv_codeplug.cc:1681
virtual void setPath(const QString &path)
Sets the path string.
Definition: dmr6x2uv_codeplug.cc:1721
virtual Channel::Power power() const
Returns the transmit power.
Definition: dmr6x2uv_codeplug.cc:1736
virtual void setDMRChannelSelected(unsigned n)
Sets the channel to the current/selected channel.
Definition: dmr6x2uv_codeplug.cc:1778
virtual unsigned dmrDestination(unsigned n) const
Returns the destination contact for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1783
virtual QString destination() const
Returns the destination call.
Definition: dmr6x2uv_codeplug.cc:1686
virtual unsigned destinationSSID() const
Returns the destination SSID.
Definition: dmr6x2uv_codeplug.cc:1691
virtual void clearDMRTimeSlotOverride(unsigned n)
Clears the time-slot override.
Definition: dmr6x2uv_codeplug.cc:1829
virtual bool fromDMRAPRSSystems(Context &ctx)
Constructs all GPS system from the generic configuration.
Definition: dmr6x2uv_codeplug.cc:1902
virtual void setPower(Channel::Power power)
Sets the transmit power.
Definition: dmr6x2uv_codeplug.cc:1746
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location send.
Definition: dmr6x2uv_codeplug.cc:1644
virtual void setDMRPreWaveDelay(Interval ms)
Sets the repeater activation delay in ms.
Definition: dmr6x2uv_codeplug.cc:1847
virtual Interval dmrPreWaveDelay() const
Returns the the repeater activation delay in ms.
Definition: dmr6x2uv_codeplug.cc:1843
virtual bool fixedLocationEnabled() const
Returns true if a fixed location is send.
Definition: dmr6x2uv_codeplug.cc:1640
virtual void enableDMRRoaming(bool enable)
Enables/disables roaming.
Definition: dmr6x2uv_codeplug.cc:1838
virtual void setDMRDestination(unsigned n, unsigned idx)
Sets the destination contact for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1787
virtual Interval fmPreWaveDelay() const
Returns the pre-wave delay in ms.
Definition: dmr6x2uv_codeplug.cc:1757
virtual bool dmrRoaming() const
Returns true if the roaming is enabled.
Definition: dmr6x2uv_codeplug.cc:1834
virtual void setDMRChannelIndex(unsigned n, unsigned idx)
Sets the digital channel index for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1774
virtual void setFMPreWaveDelay(Interval ms)
Sets the pre-wave delay in ms.
Definition: dmr6x2uv_codeplug.cc:1761
APRSSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: dmr6x2uv_codeplug.cc:1536
virtual Signaling::Code txTone() const
Returns the sub tone settings.
Definition: dmr6x2uv_codeplug.cc:1583
virtual void setTXTone(Signaling::Code code)
Sets the sub tone settings.
Definition: dmr6x2uv_codeplug.cc:1598
void clear()
Resets the settings.
Definition: dmr6x2uv_codeplug.cc:1549
virtual void setDestination(const QString &call, unsigned ssid)
Sets the destination call & SSID.
Definition: dmr6x2uv_codeplug.cc:1695
virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx)
Links the transmit channel within the generic APRS system based on the transmit frequency defined wit...
Definition: dmr6x2uv_codeplug.cc:1882
virtual Interval manualTXInterval() const
Returns the manual TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1614
virtual unsigned sourceSSID() const
Returns the source SSID.
Definition: dmr6x2uv_codeplug.cc:1706
virtual bool autoTX() const
Returns true if the auto transmit is enabled.
Definition: dmr6x2uv_codeplug.cc:1623
bool isValid() const
Returns true if the pointer is not null.
Definition: dmr6x2uv_codeplug.cc:1557
virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const
Links the specified generic GPS system.
Definition: dmr6x2uv_codeplug.cc:1932
virtual bool dmrChannelIsSelected(unsigned n) const
Returns true if the channel points to the current/selected channel.
Definition: dmr6x2uv_codeplug.cc:1766
virtual APRSSystem::Icon icon() const
Returns the APRS icon.
Definition: dmr6x2uv_codeplug.cc:1726
virtual void disableAutoTX()
Disables auto tx.
Definition: dmr6x2uv_codeplug.cc:1635
virtual GPSSystem * toDMRAPRSSystemObj(int idx) const
Constructs a generic GPS system from the idx-th encoded GPS system.
Definition: dmr6x2uv_codeplug.cc:1925
virtual void setFMFrequency(Frequency f)
Sets the FM APRS frequency.
Definition: dmr6x2uv_codeplug.cc:1569
virtual void setSource(const QString &call, unsigned ssid)
Sets the source call & SSID.
Definition: dmr6x2uv_codeplug.cc:1710
virtual unsigned dmrChannelIndex(unsigned n) const
Returns the digital channel index for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1770
virtual void setDMRCallType(unsigned n, DMRContact::Type type)
Sets the call type for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1801
virtual APRSSystem * toFMAPRSSystem()
Constructs a generic APRS system configuration from this APRS system.
Definition: dmr6x2uv_codeplug.cc:1874
virtual void setManualTXInterval(Interval sec)
Sets the manual TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1618
virtual void setAutoTXInterval(Interval sec)
Sets the auto TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1631
virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts)
Overrides the time slot of the n-th selected channel.
Definition: dmr6x2uv_codeplug.cc:1822
Implements the channel element for the BTECH DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:842
ChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: dmr6x2uv_codeplug.cc:1464
bool ranging() const
Returns true, if ranging is enabled.
Definition: dmr6x2uv_codeplug.cc:1524
void setScanListIndex(unsigned idx)
Sets the first scan list index (0-based).
Definition: dmr6x2uv_codeplug.cc:1485
bool hasScanListIndex() const
Returns true, if the first scan list index is set.
Definition: dmr6x2uv_codeplug.cc:1477
unsigned scanListIndex() const
Returns the first scan list index (0-based).
Definition: dmr6x2uv_codeplug.cc:1481
virtual void enableRoaming(bool enable)
Enables/disables roaming.
Definition: dmr6x2uv_codeplug.cc:1519
virtual bool roamingEnabled() const
Returns true if roaming is enabled for this channel.
Definition: dmr6x2uv_codeplug.cc:1515
void enableRanging(bool enable)
Enables/disables ranging.
Definition: dmr6x2uv_codeplug.cc:1528
void clearScanListIndex()
Clears the first scan list index.
Definition: dmr6x2uv_codeplug.cc:1489
Implements some settings extension for the BTECH DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:675
virtual Interval autoRoamDelay() const
Returns the effective roaming waiting time in seconds (0-30s).
Definition: dmr6x2uv_codeplug.cc:1279
void setZoneANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO A.
Definition: dmr6x2uv_codeplug.cc:1326
virtual void enableCustomChannelBackground(bool enable)
Enables/disables the custom channel background.
Definition: dmr6x2uv_codeplug.cc:1195
virtual void setEncryptionType(AnytoneDMRSettingsExtension::EncryptionType type)
Sets the encryption type.
Definition: dmr6x2uv_codeplug.cc:1314
virtual Interval autoRoamPeriod() const
Returns the auto-roaming interval in minutes (1-256).
Definition: dmr6x2uv_codeplug.cc:1269
ExtendedSettingsElement(uint8_t *ptr, unsigned size)
Hidden Constructor.
Definition: dmr6x2uv_codeplug.cc:1137
virtual void setRepeaterOutOfRangeAlert(AnytoneRoamingSettingsExtension::OutOfRangeAlert alert)
Sets the repeater out-of-range alert type.
Definition: dmr6x2uv_codeplug.cc:1228
AnytoneDisplaySettingsExtension::Color zoneANameColor() const
Returns the color of the zone name for VFO A.
Definition: dmr6x2uv_codeplug.cc:1322
virtual void setMuteTimer(Interval minutes)
Sets the mute timer in minutes.
Definition: dmr6x2uv_codeplug.cc:1302
virtual void setFontColor(AnytoneDisplaySettingsExtension::Color color)
Sets the font color.
Definition: dmr6x2uv_codeplug.cc:1186
virtual void setRepeaterRangeCheckInterval(Interval intv)
Sets the repeater check interval in seconds (5-50s).
Definition: dmr6x2uv_codeplug.cc:1245
static constexpr unsigned int size()
Returns the size of the element.
Definition: dmr6x2uv_codeplug.hh:685
virtual unsigned int defaultRoamingZoneIndex() const
Returns the roaming zone index.
Definition: dmr6x2uv_codeplug.cc:1200
AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias encoding.
Definition: dmr6x2uv_codeplug.cc:1173
void clear()
Resets the general settings.
Definition: dmr6x2uv_codeplug.cc:1150
virtual void setAutoRoamDelay(Interval sec)
Sets the effective roaming waiting time in seconds (0-30s).
Definition: dmr6x2uv_codeplug.cc:1283
void setChannelBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the channel name color for the VFO B.
Definition: dmr6x2uv_codeplug.cc:1351
virtual void setAutoRoamPeriod(Interval minutes)
Sets the auto-roaming interval in minutes (1-256).
Definition: dmr6x2uv_codeplug.cc:1273
virtual bool repeaterRangeCheckEnabled() const
Returns true if repeater check is enabled.
Definition: dmr6x2uv_codeplug.cc:1216
virtual void setRoamingStartCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the condition to start roaming.
Definition: dmr6x2uv_codeplug.cc:1264
virtual void setRoamingReturnCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the roaming return condition.
Definition: dmr6x2uv_codeplug.cc:1293
void setZoneBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO B.
Definition: dmr6x2uv_codeplug.cc:1334
virtual AnytoneRoamingSettingsExtension::OutOfRangeAlert repeaterOutOfRangeAlert() const
Returns the repeater out-of-range alert type.
Definition: dmr6x2uv_codeplug.cc:1224
virtual AnytoneRoamingSettingsExtension::RoamStart roamingReturnCondition() const
Returns the roaming return condition.
Definition: dmr6x2uv_codeplug.cc:1289
void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource source)
Sets the talker alias source.
Definition: dmr6x2uv_codeplug.cc:1168
AnytoneDisplaySettingsExtension::Color zoneBNameColor() const
Returns the color of the zone name for VFO B.
Definition: dmr6x2uv_codeplug.cc:1330
virtual unsigned int repeaterRangeCheckCount() const
Returns the number of times, a repeater reconnection is tried (3-5).
Definition: dmr6x2uv_codeplug.cc:1250
virtual void enableRepeaterRangeCheck(bool enable)
Enables/disables repeater check.
Definition: dmr6x2uv_codeplug.cc:1220
virtual Interval repeaterRangeCheckInterval() const
Returns the repeater check interval in seconds (5-50s).
Definition: dmr6x2uv_codeplug.cc:1241
virtual void enableAutoRoaming(bool enable)
Enables/disables auto roaming.
Definition: dmr6x2uv_codeplug.cc:1212
bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Link config from settings extension.
Definition: dmr6x2uv_codeplug.cc:1437
AnytoneDisplaySettingsExtension::Color channelBNameColor() const
Returns the color of the channel name for VFO B.
Definition: dmr6x2uv_codeplug.cc:1347
bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Update config from settings.
Definition: dmr6x2uv_codeplug.cc:1398
virtual unsigned int repeaterCheckNumNotifications() const
Returns the number of times, the repeater out-of-range reminder is shown (1-10).
Definition: dmr6x2uv_codeplug.cc:1232
virtual bool autoRoamingEnabled() const
Returns true if auto roaming is enabled.
Definition: dmr6x2uv_codeplug.cc:1208
virtual AnytoneDMRSettingsExtension::EncryptionType encryptionType() const
Returns the encryption type.
Definition: dmr6x2uv_codeplug.cc:1308
virtual void setChannelANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the name color for channel A.
Definition: dmr6x2uv_codeplug.cc:1343
void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding)
Sets the talker alias encoding.
Definition: dmr6x2uv_codeplug.cc:1177
virtual AnytoneDisplaySettingsExtension::Color fontColor() const
Returns the font color.
Definition: dmr6x2uv_codeplug.cc:1182
virtual AnytoneRoamingSettingsExtension::RoamStart roamingStartCondition() const
Returns the condition to start roaming.
Definition: dmr6x2uv_codeplug.cc:1260
virtual void setDefaultRoamingZoneIndex(unsigned int index)
Sets the roaming zone index.
Definition: dmr6x2uv_codeplug.cc:1204
AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition: dmr6x2uv_codeplug.cc:1164
virtual Interval muteTimer() const
Returns the mute timer in minutes.
Definition: dmr6x2uv_codeplug.cc:1298
virtual void setRepeaterCheckNumNotifications(unsigned int n)
Sets the number of times, the repeater out-of-range reminder is shown (1-10).
Definition: dmr6x2uv_codeplug.cc:1236
bool sendTalkerAlias() const
Returns true if the talker alias is sent.
Definition: dmr6x2uv_codeplug.cc:1155
bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the settings from the config.
Definition: dmr6x2uv_codeplug.cc:1356
virtual void setRepeaterRangeCheckCount(unsigned int n)
Sets the number of times, a repeater reconnection is tried (3-5).
Definition: dmr6x2uv_codeplug.cc:1254
virtual AnytoneDisplaySettingsExtension::Color channelANameColor() const
Returns the name color for channel A.
Definition: dmr6x2uv_codeplug.cc:1339
void enableSendTalkerAlias(bool enable)
Enables/disables sending the talker alias.
Definition: dmr6x2uv_codeplug.cc:1159
virtual bool customChannelBackgroundEnabled() const
Returns true if the custom channel background is enabled.
Definition: dmr6x2uv_codeplug.cc:1191
General settings element for the DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:249
void enableShowCurrentContact(bool enable)
Enables/disables display of current contact.
Definition: dmr6x2uv_codeplug.cc:731
virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const
Returns the monitor slot match.
Definition: dmr6x2uv_codeplug.cc:602
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition: dmr6x2uv_codeplug.cc:934
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 3.
Definition: dmr6x2uv_codeplug.cc:360
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition: dmr6x2uv_codeplug.cc:814
Interval rxBacklightDuration() const
Returns the backlight duration in seconds.
Definition: dmr6x2uv_codeplug.cc:943
unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition: dmr6x2uv_codeplug.cc:740
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition: dmr6x2uv_codeplug.cc:896
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const
Returns the key function for a short press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:320
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition: dmr6x2uv_codeplug.cc:773
virtual void enableFMSendIDAndContact(bool enable)
Enables/disables sending contact with FM ID.
Definition: dmr6x2uv_codeplug.cc:870
Interval gpsUpdatePeriod() const
Returns the GPS update period in seconds.
Definition: dmr6x2uv_codeplug.cc:709
virtual unsigned dtmfToneDuration() const
Returns the DTMF tone duration in ms.
Definition: dmr6x2uv_codeplug.cc:479
void enableKnobLock(bool enable)
Enables/disables the knob lock.
Definition: dmr6x2uv_codeplug.cc:757
bool idleChannelTone() const
Returns true if the idle channel tone is enabled.
Definition: dmr6x2uv_codeplug.cc:232
virtual AnytoneDisplaySettingsExtension::Language language() const
Returns the UI language.
Definition: dmr6x2uv_codeplug.cc:250
void enableDefaultChannel(bool enable)
Enables/disables default boot channel.
Definition: dmr6x2uv_codeplug.cc:879
virtual void setVFOFrequencyStep(Frequency kHz)
Sets the VFO frequency step in kHz.
Definition: dmr6x2uv_codeplug.cc:273
virtual Interval groupCallHangTime() const
Returns the group call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:429
virtual unsigned transmitTimeout() const
Returns the transmit timeout in seconds.
Definition: dmr6x2uv_codeplug.cc:241
virtual void setSTEFrequency(double freq)
Sets the STE (squelch tail eliminate) frequency setting.
Definition: dmr6x2uv_codeplug.cc:418
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:378
virtual void setTransmitTimeout(unsigned tot)
Sets the transmit timeout in seconds.
Definition: dmr6x2uv_codeplug.cc:245
Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:831
void setAutoRepeaterMaxFrequencyVHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:835
virtual void setGroupCallHangTime(Interval sec)
Sets the group call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:433
bool sidekeysLock() const
Returns true if the sidekeys are locked.
Definition: dmr6x2uv_codeplug.cc:769
virtual bool proMode() const
Returns true if the "pro mode" is enabled.
Definition: dmr6x2uv_codeplug.cc:548
virtual void setWakeHeadPeriod(Interval ms)
Sets the wake head-period in ms.
Definition: dmr6x2uv_codeplug.cc:457
void setRXBacklightDuration(Interval sec)
Sets the backlight duration in seconds.
Definition: dmr6x2uv_codeplug.cc:947
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition: dmr6x2uv_codeplug.cc:909
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1/A.
Definition: dmr6x2uv_codeplug.cc:297
virtual void enableRemoteStunKill(bool enable)
Enables/disables remote stun/kill.
Definition: dmr6x2uv_codeplug.cc:579
virtual bool selectTXContactEnabled() const
Returns true, if the selection of a TX contact is enabled.
Definition: dmr6x2uv_codeplug.cc:593
virtual void enableFilterOwnID(bool enable)
Enables/disables filter of own ID in call lists.
Definition: dmr6x2uv_codeplug.cc:561
virtual void setStandbyBackgroundColor(AnytoneDisplaySettingsExtension::Color color)
Sets the stand-by background color.
Definition: dmr6x2uv_codeplug.cc:957
virtual bool filterOwnID() const
Returns true if the own ID is filtered in call lists.
Definition: dmr6x2uv_codeplug.cc:557
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const
Returns the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:374
virtual void enableSMSConfirm(bool enable)
Enables/disables SMS confirmation.
Definition: dmr6x2uv_codeplug.cc:695
void enableVFOModeA(bool enable)
Enables/disables VFO mode for VFO A.
Definition: dmr6x2uv_codeplug.cc:387
void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater direction for VFO B.
Definition: dmr6x2uv_codeplug.cc:861
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:342
virtual void enableMonitorColorCodeMatch(bool enable)
Enables/disables monitor color code match.
Definition: dmr6x2uv_codeplug.cc:615
virtual AnytoneSettingsExtension::STEType steType() const
Returns the STE (squelch tail eliminate) type.
Definition: dmr6x2uv_codeplug.cc:401
virtual void setManDownDelay(Interval sec)
Sets the "man down" delay in seconds.
Definition: dmr6x2uv_codeplug.cc:642
virtual bool remoteMonitor() const
Returns true remote monitor is enabled.
Definition: dmr6x2uv_codeplug.cc:584
virtual void setFMCallHold(unsigned sec)
Sets the analog call hold in seconds.
Definition: dmr6x2uv_codeplug.cc:651
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition: dmr6x2uv_codeplug.cc:938
bool keyToneEnabled() const
Returns true, if the key tone is enabled.
Definition: dmr6x2uv_codeplug.cc:566
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition: dmr6x2uv_codeplug.cc:904
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2/B.
Definition: dmr6x2uv_codeplug.cc:306
bool knobLock() const
Returns true if the knob is locked.
Definition: dmr6x2uv_codeplug.cc:753
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition: dmr6x2uv_codeplug.cc:917
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition: dmr6x2uv_codeplug.cc:1060
bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition: dmr6x2uv_codeplug.cc:736
virtual bool maintainCallChannel() const
Returns true if the call channel is maintained.
Definition: dmr6x2uv_codeplug.cc:665
virtual Interval preWaveDelay() const
Returns the pre-wave time in ms.
Definition: dmr6x2uv_codeplug.cc:445
virtual void enableSelectTXContact(bool enable)
Enables/disables selection of the TX contact.
Definition: dmr6x2uv_codeplug.cc:597
virtual unsigned fmCallHold() const
Returns the analog call hold in seconds.
Definition: dmr6x2uv_codeplug.cc:647
static constexpr unsigned int size()
Returns the size of the element.
Definition: dmr6x2uv_codeplug.hh:312
virtual double steFrequency() const
Returns the STE (squelch tail eliminate) frequency setting in Hz.
Definition: dmr6x2uv_codeplug.cc:409
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:333
virtual void enableMonitorIDMatch(bool enable)
Enables/disables monitor ID match.
Definition: dmr6x2uv_codeplug.cc:624
virtual void enableManDown(bool enable)
Enables/disables "man down".
Definition: dmr6x2uv_codeplug.cc:509
TBSTFrequency
TBST (open repeater) frequencies.
Definition: dmr6x2uv_codeplug.hh:293
virtual void setPrivateCallHangTime(Interval sec)
Sets the private call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:441
unsigned defaultChannelBIndex() const
Returns the default channel index for VFO B.
Definition: dmr6x2uv_codeplug.cc:921
virtual void setDTMFToneDuration(unsigned ms)
Sets the DTMF tone duration in ms.
Definition: dmr6x2uv_codeplug.cc:490
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition: dmr6x2uv_codeplug.cc:727
virtual void enableMaintainCallChannel(bool enable)
Enables/disables maintaining the call channel.
Definition: dmr6x2uv_codeplug.cc:669
Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:823
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const
Returns the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:365
virtual bool wfmVFOEnabled() const
Returns true if the WFM RX is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:470
virtual unsigned priorityZoneBIndex() const
Returns the priority Zone B index.
Definition: dmr6x2uv_codeplug.cc:682
virtual void setSimplexRepeaterTimeslot(AnytoneSimplexRepeaterSettingsExtension::TimeSlot slot)
Sets the time-slot in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:791
virtual bool monitorColorCodeMatch() const
Returns true if the monitor matches color code.
Definition: dmr6x2uv_codeplug.cc:611
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition: dmr6x2uv_codeplug.cc:818
virtual bool fmSendIDAndContact() const
If enabled, the FM ID is sent together with selected contact.
Definition: dmr6x2uv_codeplug.cc:866
bool vfoModeA() const
Returns true if the VFO A is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:383
virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match)
Sets the monitor slot match.
Definition: dmr6x2uv_codeplug.cc:606
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition: dmr6x2uv_codeplug.cc:523
virtual bool gpsMessageEnabled() const
Returns true if the GPS range reporting is enabled.
Definition: dmr6x2uv_codeplug.cc:656
DTMFDuration
DTMF signalling durations.
Definition: dmr6x2uv_codeplug.hh:288
virtual void enableRemoteMonitor(bool enable)
Enables/disables remote monitor.
Definition: dmr6x2uv_codeplug.cc:588
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const
Returns the key function for a short press on the function key 1/A.
Definition: dmr6x2uv_codeplug.cc:293
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:852
void enableVFOModeB(bool enable)
Enables/disables VFO mode for VFO B.
Definition: dmr6x2uv_codeplug.cc:396
virtual void setPreWaveDelay(Interval ms)
Sets the pre-wave time in ms.
Definition: dmr6x2uv_codeplug.cc:449
virtual Interval wakeHeadPeriod() const
Returns the wake head-period in ms.
Definition: dmr6x2uv_codeplug.cc:453
virtual unsigned int manualDialedPrivateCallHangTime() const
Returns the private-call hang time, if private call was dialed manually.
Definition: dmr6x2uv_codeplug.cc:970
virtual bool remoteStunKill() const
Returns true remote stun/kill is enabled.
Definition: dmr6x2uv_codeplug.cc:575
virtual bool monitorTimeSlotHold() const
Returns true if the monitor holds the time slot.
Definition: dmr6x2uv_codeplug.cc:629
virtual void setTBSTFrequency(Frequency freq)
Sets the TBST frequency.
Definition: dmr6x2uv_codeplug.cc:533
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const
Returns the key function for a short press on the function key 2/B.
Definition: dmr6x2uv_codeplug.cc:302
virtual bool smsConfirmEnabled() const
Returns true, if a SMS confirmation is sent.
Definition: dmr6x2uv_codeplug.cc:691
bool keypadLock() const
Returns true if the keypad is locked.
Definition: dmr6x2uv_codeplug.cc:761
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:329
bool vfoModeB() const
Returns true if the VFO B is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:392
Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:848
virtual void setManualDialedPrivateCallHangTime(unsigned int dur)
Sets the private-call hang time, if the private call was dialed maually.
Definition: dmr6x2uv_codeplug.cc:974
Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:840
virtual Interval privateCallHangTime() const
Returns the private call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:437
virtual void enableMonitorTimeSlotHold(bool enable)
Enables/disables monitor time slot hold.
Definition: dmr6x2uv_codeplug.cc:633
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition: dmr6x2uv_codeplug.cc:796
virtual Frequency vfoFrequencyStep() const
Returns the VFO frequency step in kHz.
Definition: dmr6x2uv_codeplug.cc:259
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition: dmr6x2uv_codeplug.cc:900
virtual void enableGPSMessage(bool enable)
Enables/disables GPS range reporting.
Definition: dmr6x2uv_codeplug.cc:660
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition: dmr6x2uv_codeplug.cc:781
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:369
virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const
Returns the SMS format.
Definition: dmr6x2uv_codeplug.cc:805
void enableKeyTone(bool enable)
Enables/disables the key-tone.
Definition: dmr6x2uv_codeplug.cc:570
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const
Returns the key function for a short press on the function key 3/C.
Definition: dmr6x2uv_codeplug.cc:311
virtual void setPriorityZoneAIndex(unsigned idx)
Sets the priority zone A index.
Definition: dmr6x2uv_codeplug.cc:678
FreqStep
Possible VFO frequency steps.
Definition: dmr6x2uv_codeplug.hh:276
@ FREQ_STEP_2_5kHz
2.5kHz
Definition: dmr6x2uv_codeplug.hh:277
@ FREQ_STEP_50kHz
50kHz
Definition: dmr6x2uv_codeplug.hh:284
@ FREQ_STEP_12_5kHz
12.5kHz
Definition: dmr6x2uv_codeplug.hh:281
@ FREQ_STEP_6_25kHz
6.25kHz
Definition: dmr6x2uv_codeplug.hh:279
@ FREQ_STEP_25kHz
25kHz
Definition: dmr6x2uv_codeplug.hh:283
@ FREQ_STEP_5kHz
5kHz
Definition: dmr6x2uv_codeplug.hh:278
@ FREQ_STEP_20kHz
20kHz
Definition: dmr6x2uv_codeplug.hh:282
@ FREQ_STEP_10kHz
10kHz
Definition: dmr6x2uv_codeplug.hh:280
virtual void setManualDialedGroupCallHangTime(unsigned int dur)
Sets the group-call hang time, if the group call was dialed maually.
Definition: dmr6x2uv_codeplug.cc:966
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition: dmr6x2uv_codeplug.cc:765
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const
Returns the key function for a long press on the function key 3.
Definition: dmr6x2uv_codeplug.cc:356
virtual void enableMonitorSimplexRepeater(bool enable)
Enables/disables the speaker during RX in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:722
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition: dmr6x2uv_codeplug.cc:913
virtual void setPriorityZoneBIndex(unsigned idx)
Sets the priority zone B index.
Definition: dmr6x2uv_codeplug.cc:686
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition: dmr6x2uv_codeplug.cc:929
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const
Returns the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:338
virtual void enableSimplexRepeater(bool enable)
Enables disables the simplex repeater feature.
Definition: dmr6x2uv_codeplug.cc:704
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition: dmr6x2uv_codeplug.cc:857
virtual bool monitorIDMatch() const
Returns true if the monitor matches ID.
Definition: dmr6x2uv_codeplug.cc:620
void setDefaultZoneIndexA(unsigned idx)
Sets the default zone (0-based) for VFO A.
Definition: dmr6x2uv_codeplug.cc:888
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:351
virtual void enableWFMMonitor(bool enable)
Enables/disables WFM monitor.
Definition: dmr6x2uv_codeplug.cc:518
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:324
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden Constructor.
Definition: dmr6x2uv_codeplug.cc:219
virtual bool wfmMonitor() const
Returns true if WFM monitor is enabled.
Definition: dmr6x2uv_codeplug.cc:514
virtual unsigned priorityZoneAIndex() const
Returns the priority Zone A index.
Definition: dmr6x2uv_codeplug.cc:674
virtual bool simplexRepeaterEnabled() const
Returns true if the simplex repeater feature is enabled.
Definition: dmr6x2uv_codeplug.cc:700
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const
Returns the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:347
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition: dmr6x2uv_codeplug.cc:800
virtual void enableProMode(bool enable)
Enables/disables the "pro mode".
Definition: dmr6x2uv_codeplug.cc:552
void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition: dmr6x2uv_codeplug.cc:744
void setDefaultChannelBIndex(unsigned idx)
Sets the default channel index for VFO B.
Definition: dmr6x2uv_codeplug.cc:925
virtual void setLanguage(AnytoneDisplaySettingsExtension::Language lang)
Sets the UI language.
Definition: dmr6x2uv_codeplug.cc:254
virtual bool monitorSimplexRepeaterEnabled() const
Returns true if the speaker is switched on during RX in simplex repeater mode, see simplexRepeaterEna...
Definition: dmr6x2uv_codeplug.cc:718
virtual bool manDown() const
Returns true if "man down" is enabled.
Definition: dmr6x2uv_codeplug.cc:505
void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition: dmr6x2uv_codeplug.cc:748
virtual unsigned int manualDialedGroupCallHangTime() const
Returns the group-call hang time, if group call was dialed manually.
Definition: dmr6x2uv_codeplug.cc:962
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition: dmr6x2uv_codeplug.cc:875
void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:844
bool keyLockForced() const
Returns true if the "professional" key is locked.
Definition: dmr6x2uv_codeplug.cc:777
virtual AnytoneDisplaySettingsExtension::Color standbyBackgroundColor() const
Returns the stand-by background color.
Definition: dmr6x2uv_codeplug.cc:953
void setGPSUpdatePeriod(Interval sec)
Sets the GPS update period in seconds.
Definition: dmr6x2uv_codeplug.cc:713
virtual Interval manDownDelay() const
Returns the "man down" delay in seconds.
Definition: dmr6x2uv_codeplug.cc:638
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition: dmr6x2uv_codeplug.cc:892
virtual AnytoneSimplexRepeaterSettingsExtension::TimeSlot simplexRepeaterTimeslot() const
Returns the time-slot in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:786
virtual void setWFMChannelIndex(unsigned idx)
Sets the wide-FM (broadcast) channel index.
Definition: dmr6x2uv_codeplug.cc:466
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition: dmr6x2uv_codeplug.cc:980
STEFrequency
All possible STE (squelch tail eliminate) frequencies.
Definition: dmr6x2uv_codeplug.hh:298
virtual unsigned wfmChannelIndex() const
Returns the wide-FM (broadcast) channel index.
Definition: dmr6x2uv_codeplug.cc:462
virtual void setSTEType(AnytoneSettingsExtension::STEType type)
Sets the STE (squelch tail eliminate) type.
Definition: dmr6x2uv_codeplug.cc:405
virtual void enableWFMVFO(bool enable)
Enables/disables VFO mode for WFM RX.
Definition: dmr6x2uv_codeplug.cc:474
unsigned defaultZoneIndexA() const
Returns the default zone index (0-based) for VFO A.
Definition: dmr6x2uv_codeplug.cc:884
void setAutoRepeaterMinFrequencyVHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:827
virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt)
Sets the SMS format.
Definition: dmr6x2uv_codeplug.cc:809
void enableIdleChannelTone(bool enable)
Enables/disables the idle channel tone.
Definition: dmr6x2uv_codeplug.cc:236
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 3/C.
Definition: dmr6x2uv_codeplug.cc:315
Represents the device specific binary codeplug for BTECH DMR-6X2UV radios.
Definition: dmr6x2uv_codeplug.hh:191
void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition: dmr6x2uv_codeplug.cc:2020
void allocateGPSSystems()
Allocates GPS settings memory section.
Definition: dmr6x2uv_codeplug.cc:2158
virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Links roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2349
bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition: dmr6x2uv_codeplug.cc:2194
bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the downloaded codeplug.
Definition: dmr6x2uv_codeplug.cc:2045
bool allocateBitmaps()
Allocates the bitmaps.
Definition: dmr6x2uv_codeplug.cc:1973
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition: dmr6x2uv_codeplug.cc:2119
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition: dmr6x2uv_codeplug.cc:2103
DMR6X2UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor.
Definition: dmr6x2uv_codeplug.cc:1960
bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition: dmr6x2uv_codeplug.cc:2232
virtual void allocateRoaming()
Allocates memory to store all roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2254
void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition: dmr6x2uv_codeplug.cc:1986
bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition: dmr6x2uv_codeplug.cc:2167
D878UVCodeplug::RoamingZoneBitmapElement RoamingZoneBitmapElement
Reuse roaming zone bitmap from D878UV.
Definition: dmr6x2uv_codeplug.hh:1095
bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition: dmr6x2uv_codeplug.cc:2083
D878UVCodeplug::RoamingZoneElement RoamingZoneElement
Reuse roaming zone from D878UV.
Definition: dmr6x2uv_codeplug.hh:1097
bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition: dmr6x2uv_codeplug.cc:2097
D878UVCodeplug::RoamingChannelElement RoamingChannelElement
Reuse roaming channel from D878UV.
Definition: dmr6x2uv_codeplug.hh:1093
void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition: dmr6x2uv_codeplug.cc:2012
virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Creates roaming channels and zones from codeplug.
Definition: dmr6x2uv_codeplug.cc:2319
bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition: dmr6x2uv_codeplug.cc:2068
void allocateGeneralSettings()
Allocates general settings memory section.
Definition: dmr6x2uv_codeplug.cc:2062
D878UVCodeplug::RoamingChannelBitmapElement RoamingChannelBitmapElement
Reuse roaming channel bitmap from D878UV.
Definition: dmr6x2uv_codeplug.hh:1091
bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given config (via context) to the binary codeplug.
Definition: dmr6x2uv_codeplug.cc:2031
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition: dmr6x2uv_codeplug.cc:2138
virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2285
void allocateUpdated()
Allocate all code-plug elements that must be written back to the device to maintain a working codeplu...
Definition: dmr6x2uv_codeplug.cc:2003
TimeSlot
Possible timeslots for digital channels.
Definition: channel.hh:389
Type
Possible call types for a contact.
Definition: contact.hh:155
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition: errorstack.hh:41
This class represents a GPS signalling system within the codeplug.
Definition: gpssystem.hh:64
Represents a time interval.
Definition: interval.hh:11
static constexpr Interval fromMinutes(unsigned long long min)
Definition: interval.hh:63
static constexpr Interval fromSeconds(unsigned long long s)
Definition: interval.hh:60
Simple range class representing some range in some data type.
Definition: ranges.hh:14
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
Implements encoding of CTCSS tones.
Definition: d868uv_codeplug.hh:209
Some internal used offsets within the element.
Definition: d868uv_codeplug.hh:553
Some limits for the codeplug.
Definition: d868uv_codeplug.hh:798
Some internal used offsets within the codeplug.
Definition: d868uv_codeplug.hh:822
Internal used sizes.
Definition: d868uv_codeplug.hh:903
Some static limits for this element.
Definition: dmr6x2uv_codeplug.hh:1037
static constexpr unsigned int dmrSystems()
Maximum number of DMR APRS systems.
Definition: dmr6x2uv_codeplug.hh:1043
static constexpr unsigned int pathLength()
Maximum length of the repeater path string.
Definition: dmr6x2uv_codeplug.hh:1041
static constexpr unsigned int callLength()
Maximum length of call signs.
Definition: dmr6x2uv_codeplug.hh:1039
Internal used offsets within the codeplug element.
Definition: dmr6x2uv_codeplug.hh:1048
Background colors supported by the DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:211
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: dmr6x2uv_codeplug.cc:58
CodedColor
Encoding of the supported colors.
Definition: dmr6x2uv_codeplug.hh:220
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: dmr6x2uv_codeplug.cc:48
Colors supported by the DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:196
CodedColor
Encoding of the supported colors.
Definition: dmr6x2uv_codeplug.hh:205
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: dmr6x2uv_codeplug.cc:29
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: dmr6x2uv_codeplug.cc:13
Some limits for entries.
Definition: dmr6x2uv_codeplug.hh:782
static constexpr TimeRange autoRoamDelay()
Auto-roaming delay limits.
Definition: dmr6x2uv_codeplug.hh:796
static constexpr IntRange repRangeReminder()
Out of range reminder count limits.
Definition: dmr6x2uv_codeplug.hh:784
static constexpr TimeRange autoRoamingInterval()
Auto-roaming interval limits.
Definition: dmr6x2uv_codeplug.hh:792
static constexpr IntRange repeaterReconnections()
Repeater reconnection count limits.
Definition: dmr6x2uv_codeplug.hh:790
static constexpr TimeRange muteTimer()
Mute-timer limits.
Definition: dmr6x2uv_codeplug.hh:800
static constexpr TimeRange rangeCheckInterval()
Repeater range check interval limits.
Definition: dmr6x2uv_codeplug.hh:786
Some internal offset within the codeplug element.
Definition: dmr6x2uv_codeplug.hh:807
Font colors supported by the DMR-6X2UV.
Definition: dmr6x2uv_codeplug.hh:226
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: dmr6x2uv_codeplug.cc:71
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: dmr6x2uv_codeplug.cc:87
CodedColor
Encoding of the supported colors.
Definition: dmr6x2uv_codeplug.hh:235
Device specific encoding of the key functions.
Definition: dmr6x2uv_codeplug.hh:252
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition: dmr6x2uv_codeplug.cc:107
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition: dmr6x2uv_codeplug.cc:162
KeyFunctionCode
Device specific key functions.
Definition: dmr6x2uv_codeplug.hh:261
Some internal used offsets within the element.
Definition: dmr6x2uv_codeplug.hh:599
Some limits for the codeplug.
Definition: dmr6x2uv_codeplug.hh:1142
static constexpr unsigned int fmAPRSMessage()
Maximum length of the FM APRS message.
Definition: dmr6x2uv_codeplug.hh:1144
static constexpr unsigned int roamingChannels()
Maximum number of roaming channels.
Definition: dmr6x2uv_codeplug.hh:1146
static constexpr unsigned int roamingZones()
Maximum number of roaming zones.
Definition: dmr6x2uv_codeplug.hh:1148
Some internal used offsets within the codeplug.
Definition: dmr6x2uv_codeplug.hh:1153
Some internal used sizes.
Definition: dmr6x2uv_codeplug.hh:1167
Helper type to encode frequencies without any rounding error.
Definition: frequency.hh:11