libdrmconf  0.11.3
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:1419
Represents the base class for channel encodings in all AnyTone codeplugs.
Definition: anytone_codeplug.hh:87
static constexpr unsigned int size()
Returns the size of the element.
Definition: anytone_codeplug.hh:148
Represents the base class for the extended settings element in many AnyTone codeplugs.
Definition: anytone_codeplug.hh:1182
virtual bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition: anytone_codeplug.cc:4509
Color
Possible display colors.
Definition: anytone_extension.hh:974
Language
Possible UI languages.
Definition: anytone_extension.hh:980
KeyFunction
All possible key functions.
Definition: anytone_extension.hh:585
RoamStart
Possible roaming start conditions.
Definition: anytone_extension.hh:1861
OutOfRangeAlert
Possible repeater out-of-range alerts.
Definition: anytone_extension.hh:1867
STEType
All possible STE (squelch tail eliminate) types.
Definition: anytone_extension.hh:2166
TimeSlot
Possible simplex repeater time-slots.
Definition: anytone_extension.hh:2011
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:195
Represents the abstract base class of all codeplug elements.
Definition: codeplug.hh:47
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition: codeplug.hh:24
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:1648
Implements the binary representation of a roaming channel within the codeplug.
Definition: d878uv_codeplug.hh:1566
Represents the bitmap, indicating which roaming zone is valid.
Definition: d878uv_codeplug.hh:1722
Represents a roaming zone within the binary codeplug.
Definition: d878uv_codeplug.hh:1666
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:1562
virtual void setIcon(APRSSystem::Icon icon)
Sets the APRS icon.
Definition: dmr6x2uv_codeplug.cc:1727
virtual bool dmrTimeSlotOverride(unsigned n)
Returns true if the n-th system overrides the channel time-slot.
Definition: dmr6x2uv_codeplug.cc:1807
virtual QString path() const
Returns the path string.
Definition: dmr6x2uv_codeplug.cc:1714
virtual Interval autoTXInterval() const
Returns the auto TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1624
virtual DMRContact::Type dmrCallType(unsigned n) const
Returns the call type for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1789
virtual QString source() const
Returns the source call.
Definition: dmr6x2uv_codeplug.cc:1698
virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx)
Encodes the given GPS system.
Definition: dmr6x2uv_codeplug.cc:1907
virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const
Returns the time slot if overridden (only valid if timeSlot returns true).
Definition: dmr6x2uv_codeplug.cc:1811
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:1571
virtual void setFixedLocation(QGeoCoordinate &loc)
Sets the fixed location to send.
Definition: dmr6x2uv_codeplug.cc:1655
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:1575
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:1849
virtual void disableFixedLocation()
Disables sending a fixed location.
Definition: dmr6x2uv_codeplug.cc:1678
virtual void setPath(const QString &path)
Sets the path string.
Definition: dmr6x2uv_codeplug.cc:1718
virtual Channel::Power power() const
Returns the transmit power.
Definition: dmr6x2uv_codeplug.cc:1733
virtual void setDMRChannelSelected(unsigned n)
Sets the channel to the current/selected channel.
Definition: dmr6x2uv_codeplug.cc:1775
virtual unsigned dmrDestination(unsigned n) const
Returns the destination contact for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1780
virtual QString destination() const
Returns the destination call.
Definition: dmr6x2uv_codeplug.cc:1683
virtual unsigned destinationSSID() const
Returns the destination SSID.
Definition: dmr6x2uv_codeplug.cc:1688
virtual void clearDMRTimeSlotOverride(unsigned n)
Clears the time-slot override.
Definition: dmr6x2uv_codeplug.cc:1826
virtual bool fromDMRAPRSSystems(Context &ctx)
Constructs all GPS system from the generic configuration.
Definition: dmr6x2uv_codeplug.cc:1899
virtual void setPower(Channel::Power power)
Sets the transmit power.
Definition: dmr6x2uv_codeplug.cc:1743
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location send.
Definition: dmr6x2uv_codeplug.cc:1641
virtual void setDMRPreWaveDelay(Interval ms)
Sets the repeater activation delay in ms.
Definition: dmr6x2uv_codeplug.cc:1844
virtual Interval dmrPreWaveDelay() const
Returns the the repeater activation delay in ms.
Definition: dmr6x2uv_codeplug.cc:1840
virtual bool fixedLocationEnabled() const
Returns true if a fixed location is send.
Definition: dmr6x2uv_codeplug.cc:1637
virtual void enableDMRRoaming(bool enable)
Enables/disables roaming.
Definition: dmr6x2uv_codeplug.cc:1835
virtual void setDMRDestination(unsigned n, unsigned idx)
Sets the destination contact for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1784
virtual Interval fmPreWaveDelay() const
Returns the pre-wave delay in ms.
Definition: dmr6x2uv_codeplug.cc:1754
virtual bool dmrRoaming() const
Returns true if the roaming is enabled.
Definition: dmr6x2uv_codeplug.cc:1831
virtual void setDMRChannelIndex(unsigned n, unsigned idx)
Sets the digital channel index for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1771
virtual void setFMPreWaveDelay(Interval ms)
Sets the pre-wave delay in ms.
Definition: dmr6x2uv_codeplug.cc:1758
APRSSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: dmr6x2uv_codeplug.cc:1533
virtual Signaling::Code txTone() const
Returns the sub tone settings.
Definition: dmr6x2uv_codeplug.cc:1580
virtual void setTXTone(Signaling::Code code)
Sets the sub tone settings.
Definition: dmr6x2uv_codeplug.cc:1595
void clear()
Resets the settings.
Definition: dmr6x2uv_codeplug.cc:1546
virtual void setDestination(const QString &call, unsigned ssid)
Sets the destination call & SSID.
Definition: dmr6x2uv_codeplug.cc:1692
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:1879
virtual Interval manualTXInterval() const
Returns the manual TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1611
virtual unsigned sourceSSID() const
Returns the source SSID.
Definition: dmr6x2uv_codeplug.cc:1703
virtual bool autoTX() const
Returns true if the auto transmit is enabled.
Definition: dmr6x2uv_codeplug.cc:1620
bool isValid() const
Returns true if the pointer is not null.
Definition: dmr6x2uv_codeplug.cc:1554
virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const
Links the specified generic GPS system.
Definition: dmr6x2uv_codeplug.cc:1929
virtual bool dmrChannelIsSelected(unsigned n) const
Returns true if the channel points to the current/selected channel.
Definition: dmr6x2uv_codeplug.cc:1763
virtual APRSSystem::Icon icon() const
Returns the APRS icon.
Definition: dmr6x2uv_codeplug.cc:1723
virtual void disableAutoTX()
Disables auto tx.
Definition: dmr6x2uv_codeplug.cc:1632
virtual GPSSystem * toDMRAPRSSystemObj(int idx) const
Constructs a generic GPS system from the idx-th encoded GPS system.
Definition: dmr6x2uv_codeplug.cc:1922
virtual void setFMFrequency(Frequency f)
Sets the FM APRS frequency.
Definition: dmr6x2uv_codeplug.cc:1566
virtual void setSource(const QString &call, unsigned ssid)
Sets the source call & SSID.
Definition: dmr6x2uv_codeplug.cc:1707
virtual unsigned dmrChannelIndex(unsigned n) const
Returns the digital channel index for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1767
virtual void setDMRCallType(unsigned n, DMRContact::Type type)
Sets the call type for the n-th system.
Definition: dmr6x2uv_codeplug.cc:1798
virtual APRSSystem * toFMAPRSSystem()
Constructs a generic APRS system configuration from this APRS system.
Definition: dmr6x2uv_codeplug.cc:1871
virtual void setManualTXInterval(Interval sec)
Sets the manual TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1615
virtual void setAutoTXInterval(Interval sec)
Sets the auto TX interval in seconds.
Definition: dmr6x2uv_codeplug.cc:1628
virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts)
Overrides the time slot of the n-th selected channel.
Definition: dmr6x2uv_codeplug.cc:1819
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:1461
bool ranging() const
Returns true, if ranging is enabled.
Definition: dmr6x2uv_codeplug.cc:1521
void setScanListIndex(unsigned idx)
Sets the first scan list index (0-based).
Definition: dmr6x2uv_codeplug.cc:1482
bool hasScanListIndex() const
Returns true, if the first scan list index is set.
Definition: dmr6x2uv_codeplug.cc:1474
unsigned scanListIndex() const
Returns the first scan list index (0-based).
Definition: dmr6x2uv_codeplug.cc:1478
virtual void enableRoaming(bool enable)
Enables/disables roaming.
Definition: dmr6x2uv_codeplug.cc:1516
virtual bool roamingEnabled() const
Returns true if roaming is enabled for this channel.
Definition: dmr6x2uv_codeplug.cc:1512
void enableRanging(bool enable)
Enables/disables ranging.
Definition: dmr6x2uv_codeplug.cc:1525
void clearScanListIndex()
Clears the first scan list index.
Definition: dmr6x2uv_codeplug.cc:1486
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:1276
void setZoneANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO A.
Definition: dmr6x2uv_codeplug.cc:1323
virtual void enableCustomChannelBackground(bool enable)
Enables/disables the custom channel background.
Definition: dmr6x2uv_codeplug.cc:1192
virtual void setEncryptionType(AnytoneDMRSettingsExtension::EncryptionType type)
Sets the encryption type.
Definition: dmr6x2uv_codeplug.cc:1311
virtual Interval autoRoamPeriod() const
Returns the auto-roaming interval in minutes (1-256).
Definition: dmr6x2uv_codeplug.cc:1266
ExtendedSettingsElement(uint8_t *ptr, unsigned size)
Hidden Constructor.
Definition: dmr6x2uv_codeplug.cc:1134
virtual void setRepeaterOutOfRangeAlert(AnytoneRoamingSettingsExtension::OutOfRangeAlert alert)
Sets the repeater out-of-range alert type.
Definition: dmr6x2uv_codeplug.cc:1225
AnytoneDisplaySettingsExtension::Color zoneANameColor() const
Returns the color of the zone name for VFO A.
Definition: dmr6x2uv_codeplug.cc:1319
virtual void setMuteTimer(Interval minutes)
Sets the mute timer in minutes.
Definition: dmr6x2uv_codeplug.cc:1299
virtual void setFontColor(AnytoneDisplaySettingsExtension::Color color)
Sets the font color.
Definition: dmr6x2uv_codeplug.cc:1183
virtual void setRepeaterRangeCheckInterval(Interval intv)
Sets the repeater check interval in seconds (5-50s).
Definition: dmr6x2uv_codeplug.cc:1242
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:1197
AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias encoding.
Definition: dmr6x2uv_codeplug.cc:1170
void clear()
Resets the general settings.
Definition: dmr6x2uv_codeplug.cc:1147
virtual void setAutoRoamDelay(Interval sec)
Sets the effective roaming waiting time in seconds (0-30s).
Definition: dmr6x2uv_codeplug.cc:1280
void setChannelBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the channel name color for the VFO B.
Definition: dmr6x2uv_codeplug.cc:1348
virtual void setAutoRoamPeriod(Interval minutes)
Sets the auto-roaming interval in minutes (1-256).
Definition: dmr6x2uv_codeplug.cc:1270
virtual bool repeaterRangeCheckEnabled() const
Returns true if repeater check is enabled.
Definition: dmr6x2uv_codeplug.cc:1213
virtual void setRoamingStartCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the condition to start roaming.
Definition: dmr6x2uv_codeplug.cc:1261
virtual void setRoamingReturnCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the roaming return condition.
Definition: dmr6x2uv_codeplug.cc:1290
void setZoneBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO B.
Definition: dmr6x2uv_codeplug.cc:1331
virtual AnytoneRoamingSettingsExtension::OutOfRangeAlert repeaterOutOfRangeAlert() const
Returns the repeater out-of-range alert type.
Definition: dmr6x2uv_codeplug.cc:1221
virtual AnytoneRoamingSettingsExtension::RoamStart roamingReturnCondition() const
Returns the roaming return condition.
Definition: dmr6x2uv_codeplug.cc:1286
void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource source)
Sets the talker alias source.
Definition: dmr6x2uv_codeplug.cc:1165
AnytoneDisplaySettingsExtension::Color zoneBNameColor() const
Returns the color of the zone name for VFO B.
Definition: dmr6x2uv_codeplug.cc:1327
virtual unsigned int repeaterRangeCheckCount() const
Returns the number of times, a repeater reconnection is tried (3-5).
Definition: dmr6x2uv_codeplug.cc:1247
virtual void enableRepeaterRangeCheck(bool enable)
Enables/disables repeater check.
Definition: dmr6x2uv_codeplug.cc:1217
virtual Interval repeaterRangeCheckInterval() const
Returns the repeater check interval in seconds (5-50s).
Definition: dmr6x2uv_codeplug.cc:1238
virtual void enableAutoRoaming(bool enable)
Enables/disables auto roaming.
Definition: dmr6x2uv_codeplug.cc:1209
bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Link config from settings extension.
Definition: dmr6x2uv_codeplug.cc:1434
AnytoneDisplaySettingsExtension::Color channelBNameColor() const
Returns the color of the channel name for VFO B.
Definition: dmr6x2uv_codeplug.cc:1344
bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Update config from settings.
Definition: dmr6x2uv_codeplug.cc:1395
virtual unsigned int repeaterCheckNumNotifications() const
Returns the number of times, the repeater out-of-range reminder is shown (1-10).
Definition: dmr6x2uv_codeplug.cc:1229
virtual bool autoRoamingEnabled() const
Returns true if auto roaming is enabled.
Definition: dmr6x2uv_codeplug.cc:1205
virtual AnytoneDMRSettingsExtension::EncryptionType encryptionType() const
Returns the encryption type.
Definition: dmr6x2uv_codeplug.cc:1305
virtual void setChannelANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the name color for channel A.
Definition: dmr6x2uv_codeplug.cc:1340
void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding)
Sets the talker alias encoding.
Definition: dmr6x2uv_codeplug.cc:1174
virtual AnytoneDisplaySettingsExtension::Color fontColor() const
Returns the font color.
Definition: dmr6x2uv_codeplug.cc:1179
virtual AnytoneRoamingSettingsExtension::RoamStart roamingStartCondition() const
Returns the condition to start roaming.
Definition: dmr6x2uv_codeplug.cc:1257
virtual void setDefaultRoamingZoneIndex(unsigned int index)
Sets the roaming zone index.
Definition: dmr6x2uv_codeplug.cc:1201
AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition: dmr6x2uv_codeplug.cc:1161
virtual Interval muteTimer() const
Returns the mute timer in minutes.
Definition: dmr6x2uv_codeplug.cc:1295
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:1233
bool sendTalkerAlias() const
Returns true if the talker alias is sent.
Definition: dmr6x2uv_codeplug.cc:1152
bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the settings from the config.
Definition: dmr6x2uv_codeplug.cc:1353
virtual void setRepeaterRangeCheckCount(unsigned int n)
Sets the number of times, a repeater reconnection is tried (3-5).
Definition: dmr6x2uv_codeplug.cc:1251
virtual AnytoneDisplaySettingsExtension::Color channelANameColor() const
Returns the name color for channel A.
Definition: dmr6x2uv_codeplug.cc:1336
void enableSendTalkerAlias(bool enable)
Enables/disables sending the talker alias.
Definition: dmr6x2uv_codeplug.cc:1156
virtual bool customChannelBackgroundEnabled() const
Returns true if the custom channel background is enabled.
Definition: dmr6x2uv_codeplug.cc:1188
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:728
virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const
Returns the monitor slot match.
Definition: dmr6x2uv_codeplug.cc:599
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition: dmr6x2uv_codeplug.cc:931
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 3.
Definition: dmr6x2uv_codeplug.cc:357
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition: dmr6x2uv_codeplug.cc:811
Interval rxBacklightDuration() const
Returns the backlight duration in seconds.
Definition: dmr6x2uv_codeplug.cc:940
unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition: dmr6x2uv_codeplug.cc:737
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition: dmr6x2uv_codeplug.cc:893
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const
Returns the key function for a short press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:317
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition: dmr6x2uv_codeplug.cc:770
virtual void enableFMSendIDAndContact(bool enable)
Enables/disables sending contact with FM ID.
Definition: dmr6x2uv_codeplug.cc:867
Interval gpsUpdatePeriod() const
Returns the GPS update period in seconds.
Definition: dmr6x2uv_codeplug.cc:706
virtual unsigned dtmfToneDuration() const
Returns the DTMF tone duration in ms.
Definition: dmr6x2uv_codeplug.cc:476
void enableKnobLock(bool enable)
Enables/disables the knob lock.
Definition: dmr6x2uv_codeplug.cc:754
bool idleChannelTone() const
Returns true if the idle channel tone is enabled.
Definition: dmr6x2uv_codeplug.cc:229
virtual AnytoneDisplaySettingsExtension::Language language() const
Returns the UI language.
Definition: dmr6x2uv_codeplug.cc:247
void enableDefaultChannel(bool enable)
Enables/disables default boot channel.
Definition: dmr6x2uv_codeplug.cc:876
virtual void setVFOFrequencyStep(Frequency kHz)
Sets the VFO frequency step in kHz.
Definition: dmr6x2uv_codeplug.cc:270
virtual Interval groupCallHangTime() const
Returns the group call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:426
virtual unsigned transmitTimeout() const
Returns the transmit timeout in seconds.
Definition: dmr6x2uv_codeplug.cc:238
virtual void setSTEFrequency(double freq)
Sets the STE (squelch tail eliminate) frequency setting.
Definition: dmr6x2uv_codeplug.cc:415
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:375
virtual void setTransmitTimeout(unsigned tot)
Sets the transmit timeout in seconds.
Definition: dmr6x2uv_codeplug.cc:242
Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:828
void setAutoRepeaterMaxFrequencyVHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:832
virtual void setGroupCallHangTime(Interval sec)
Sets the group call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:430
bool sidekeysLock() const
Returns true if the sidekeys are locked.
Definition: dmr6x2uv_codeplug.cc:766
virtual bool proMode() const
Returns true if the "pro mode" is enabled.
Definition: dmr6x2uv_codeplug.cc:545
virtual void setWakeHeadPeriod(Interval ms)
Sets the wake head-period in ms.
Definition: dmr6x2uv_codeplug.cc:454
void setRXBacklightDuration(Interval sec)
Sets the backlight duration in seconds.
Definition: dmr6x2uv_codeplug.cc:944
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition: dmr6x2uv_codeplug.cc:906
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1/A.
Definition: dmr6x2uv_codeplug.cc:294
virtual void enableRemoteStunKill(bool enable)
Enables/disables remote stun/kill.
Definition: dmr6x2uv_codeplug.cc:576
virtual bool selectTXContactEnabled() const
Returns true, if the selection of a TX contact is enabled.
Definition: dmr6x2uv_codeplug.cc:590
virtual void enableFilterOwnID(bool enable)
Enables/disables filter of own ID in call lists.
Definition: dmr6x2uv_codeplug.cc:558
virtual void setStandbyBackgroundColor(AnytoneDisplaySettingsExtension::Color color)
Sets the stand-by background color.
Definition: dmr6x2uv_codeplug.cc:954
virtual bool filterOwnID() const
Returns true if the own ID is filtered in call lists.
Definition: dmr6x2uv_codeplug.cc:554
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const
Returns the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:371
virtual void enableSMSConfirm(bool enable)
Enables/disables SMS confirmation.
Definition: dmr6x2uv_codeplug.cc:692
void enableVFOModeA(bool enable)
Enables/disables VFO mode for VFO A.
Definition: dmr6x2uv_codeplug.cc:384
void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater direction for VFO B.
Definition: dmr6x2uv_codeplug.cc:858
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:339
virtual void enableMonitorColorCodeMatch(bool enable)
Enables/disables monitor color code match.
Definition: dmr6x2uv_codeplug.cc:612
virtual AnytoneSettingsExtension::STEType steType() const
Returns the STE (squelch tail eliminate) type.
Definition: dmr6x2uv_codeplug.cc:398
virtual void setManDownDelay(Interval sec)
Sets the "man down" delay in seconds.
Definition: dmr6x2uv_codeplug.cc:639
virtual bool remoteMonitor() const
Returns true remote monitor is enabled.
Definition: dmr6x2uv_codeplug.cc:581
virtual void setFMCallHold(unsigned sec)
Sets the analog call hold in seconds.
Definition: dmr6x2uv_codeplug.cc:648
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition: dmr6x2uv_codeplug.cc:935
bool keyToneEnabled() const
Returns true, if the key tone is enabled.
Definition: dmr6x2uv_codeplug.cc:563
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition: dmr6x2uv_codeplug.cc:901
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2/B.
Definition: dmr6x2uv_codeplug.cc:303
bool knobLock() const
Returns true if the knob is locked.
Definition: dmr6x2uv_codeplug.cc:750
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition: dmr6x2uv_codeplug.cc:914
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition: dmr6x2uv_codeplug.cc:1057
bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition: dmr6x2uv_codeplug.cc:733
virtual bool maintainCallChannel() const
Returns true if the call channel is maintained.
Definition: dmr6x2uv_codeplug.cc:662
virtual Interval preWaveDelay() const
Returns the pre-wave time in ms.
Definition: dmr6x2uv_codeplug.cc:442
virtual void enableSelectTXContact(bool enable)
Enables/disables selection of the TX contact.
Definition: dmr6x2uv_codeplug.cc:594
virtual unsigned fmCallHold() const
Returns the analog call hold in seconds.
Definition: dmr6x2uv_codeplug.cc:644
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:406
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:330
virtual void enableMonitorIDMatch(bool enable)
Enables/disables monitor ID match.
Definition: dmr6x2uv_codeplug.cc:621
virtual void enableManDown(bool enable)
Enables/disables "man down".
Definition: dmr6x2uv_codeplug.cc:506
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:438
unsigned defaultChannelBIndex() const
Returns the default channel index for VFO B.
Definition: dmr6x2uv_codeplug.cc:918
virtual void setDTMFToneDuration(unsigned ms)
Sets the DTMF tone duration in ms.
Definition: dmr6x2uv_codeplug.cc:487
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition: dmr6x2uv_codeplug.cc:724
virtual void enableMaintainCallChannel(bool enable)
Enables/disables maintaining the call channel.
Definition: dmr6x2uv_codeplug.cc:666
Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:820
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const
Returns the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:362
virtual bool wfmVFOEnabled() const
Returns true if the WFM RX is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:467
virtual unsigned priorityZoneBIndex() const
Returns the priority Zone B index.
Definition: dmr6x2uv_codeplug.cc:679
virtual void setSimplexRepeaterTimeslot(AnytoneSimplexRepeaterSettingsExtension::TimeSlot slot)
Sets the time-slot in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:788
virtual bool monitorColorCodeMatch() const
Returns true if the monitor matches color code.
Definition: dmr6x2uv_codeplug.cc:608
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition: dmr6x2uv_codeplug.cc:815
virtual bool fmSendIDAndContact() const
If enabled, the FM ID is sent together with selected contact.
Definition: dmr6x2uv_codeplug.cc:863
bool vfoModeA() const
Returns true if the VFO A is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:380
virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match)
Sets the monitor slot match.
Definition: dmr6x2uv_codeplug.cc:603
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition: dmr6x2uv_codeplug.cc:520
virtual bool gpsMessageEnabled() const
Returns true if the GPS range reporting is enabled.
Definition: dmr6x2uv_codeplug.cc:653
DTMFDuration
DTMF signalling durations.
Definition: dmr6x2uv_codeplug.hh:288
virtual void enableRemoteMonitor(bool enable)
Enables/disables remote monitor.
Definition: dmr6x2uv_codeplug.cc:585
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const
Returns the key function for a short press on the function key 1/A.
Definition: dmr6x2uv_codeplug.cc:290
void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:849
void enableVFOModeB(bool enable)
Enables/disables VFO mode for VFO B.
Definition: dmr6x2uv_codeplug.cc:393
virtual void setPreWaveDelay(Interval ms)
Sets the pre-wave time in ms.
Definition: dmr6x2uv_codeplug.cc:446
virtual Interval wakeHeadPeriod() const
Returns the wake head-period in ms.
Definition: dmr6x2uv_codeplug.cc:450
virtual unsigned int manualDialedPrivateCallHangTime() const
Returns the private-call hang time, if private call was dialed manually.
Definition: dmr6x2uv_codeplug.cc:967
virtual bool remoteStunKill() const
Returns true remote stun/kill is enabled.
Definition: dmr6x2uv_codeplug.cc:572
virtual bool monitorTimeSlotHold() const
Returns true if the monitor holds the time slot.
Definition: dmr6x2uv_codeplug.cc:626
virtual void setTBSTFrequency(Frequency freq)
Sets the TBST frequency.
Definition: dmr6x2uv_codeplug.cc:530
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const
Returns the key function for a short press on the function key 2/B.
Definition: dmr6x2uv_codeplug.cc:299
virtual bool smsConfirmEnabled() const
Returns true, if a SMS confirmation is sent.
Definition: dmr6x2uv_codeplug.cc:688
bool keypadLock() const
Returns true if the keypad is locked.
Definition: dmr6x2uv_codeplug.cc:758
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:326
bool vfoModeB() const
Returns true if the VFO B is in VFO mode.
Definition: dmr6x2uv_codeplug.cc:389
Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:845
virtual void setManualDialedPrivateCallHangTime(unsigned int dur)
Sets the private-call hang time, if the private call was dialed maually.
Definition: dmr6x2uv_codeplug.cc:971
Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:837
virtual Interval privateCallHangTime() const
Returns the private call hang time in seconds.
Definition: dmr6x2uv_codeplug.cc:434
virtual void enableMonitorTimeSlotHold(bool enable)
Enables/disables monitor time slot hold.
Definition: dmr6x2uv_codeplug.cc:630
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition: dmr6x2uv_codeplug.cc:793
virtual Frequency vfoFrequencyStep() const
Returns the VFO frequency step in kHz.
Definition: dmr6x2uv_codeplug.cc:256
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition: dmr6x2uv_codeplug.cc:897
virtual void enableGPSMessage(bool enable)
Enables/disables GPS range reporting.
Definition: dmr6x2uv_codeplug.cc:657
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition: dmr6x2uv_codeplug.cc:778
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:366
virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const
Returns the SMS format.
Definition: dmr6x2uv_codeplug.cc:802
void enableKeyTone(bool enable)
Enables/disables the key-tone.
Definition: dmr6x2uv_codeplug.cc:567
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const
Returns the key function for a short press on the function key 3/C.
Definition: dmr6x2uv_codeplug.cc:308
virtual void setPriorityZoneAIndex(unsigned idx)
Sets the priority zone A index.
Definition: dmr6x2uv_codeplug.cc:675
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:963
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition: dmr6x2uv_codeplug.cc:762
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const
Returns the key function for a long press on the function key 3.
Definition: dmr6x2uv_codeplug.cc:353
virtual void enableMonitorSimplexRepeater(bool enable)
Enables/disables the speaker during RX in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:719
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition: dmr6x2uv_codeplug.cc:910
virtual void setPriorityZoneBIndex(unsigned idx)
Sets the priority zone B index.
Definition: dmr6x2uv_codeplug.cc:683
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition: dmr6x2uv_codeplug.cc:926
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const
Returns the key function for a long press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:335
virtual void enableSimplexRepeater(bool enable)
Enables disables the simplex repeater feature.
Definition: dmr6x2uv_codeplug.cc:701
AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition: dmr6x2uv_codeplug.cc:854
virtual bool monitorIDMatch() const
Returns true if the monitor matches ID.
Definition: dmr6x2uv_codeplug.cc:617
void setDefaultZoneIndexA(unsigned idx)
Sets the default zone (0-based) for VFO A.
Definition: dmr6x2uv_codeplug.cc:885
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:348
virtual void enableWFMMonitor(bool enable)
Enables/disables WFM monitor.
Definition: dmr6x2uv_codeplug.cc:515
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1.
Definition: dmr6x2uv_codeplug.cc:321
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden Constructor.
Definition: dmr6x2uv_codeplug.cc:216
virtual bool wfmMonitor() const
Returns true if WFM monitor is enabled.
Definition: dmr6x2uv_codeplug.cc:511
virtual unsigned priorityZoneAIndex() const
Returns the priority Zone A index.
Definition: dmr6x2uv_codeplug.cc:671
virtual bool simplexRepeaterEnabled() const
Returns true if the simplex repeater feature is enabled.
Definition: dmr6x2uv_codeplug.cc:697
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const
Returns the key function for a long press on the function key 2.
Definition: dmr6x2uv_codeplug.cc:344
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition: dmr6x2uv_codeplug.cc:797
virtual void enableProMode(bool enable)
Enables/disables the "pro mode".
Definition: dmr6x2uv_codeplug.cc:549
void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition: dmr6x2uv_codeplug.cc:741
void setDefaultChannelBIndex(unsigned idx)
Sets the default channel index for VFO B.
Definition: dmr6x2uv_codeplug.cc:922
virtual void setLanguage(AnytoneDisplaySettingsExtension::Language lang)
Sets the UI language.
Definition: dmr6x2uv_codeplug.cc:251
virtual bool monitorSimplexRepeaterEnabled() const
Returns true if the speaker is switched on during RX in simplex repeater mode, see simplexRepeaterEna...
Definition: dmr6x2uv_codeplug.cc:715
virtual bool manDown() const
Returns true if "man down" is enabled.
Definition: dmr6x2uv_codeplug.cc:502
void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition: dmr6x2uv_codeplug.cc:745
virtual unsigned int manualDialedGroupCallHangTime() const
Returns the group-call hang time, if group call was dialed manually.
Definition: dmr6x2uv_codeplug.cc:959
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition: dmr6x2uv_codeplug.cc:872
void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: dmr6x2uv_codeplug.cc:841
bool keyLockForced() const
Returns true if the "professional" key is locked.
Definition: dmr6x2uv_codeplug.cc:774
virtual AnytoneDisplaySettingsExtension::Color standbyBackgroundColor() const
Returns the stand-by background color.
Definition: dmr6x2uv_codeplug.cc:950
void setGPSUpdatePeriod(Interval sec)
Sets the GPS update period in seconds.
Definition: dmr6x2uv_codeplug.cc:710
virtual Interval manDownDelay() const
Returns the "man down" delay in seconds.
Definition: dmr6x2uv_codeplug.cc:635
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition: dmr6x2uv_codeplug.cc:889
virtual AnytoneSimplexRepeaterSettingsExtension::TimeSlot simplexRepeaterTimeslot() const
Returns the time-slot in simplex repeater mode.
Definition: dmr6x2uv_codeplug.cc:783
virtual void setWFMChannelIndex(unsigned idx)
Sets the wide-FM (broadcast) channel index.
Definition: dmr6x2uv_codeplug.cc:463
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition: dmr6x2uv_codeplug.cc:977
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:459
virtual void setSTEType(AnytoneSettingsExtension::STEType type)
Sets the STE (squelch tail eliminate) type.
Definition: dmr6x2uv_codeplug.cc:402
virtual void enableWFMVFO(bool enable)
Enables/disables VFO mode for WFM RX.
Definition: dmr6x2uv_codeplug.cc:471
unsigned defaultZoneIndexA() const
Returns the default zone index (0-based) for VFO A.
Definition: dmr6x2uv_codeplug.cc:881
void setAutoRepeaterMinFrequencyVHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: dmr6x2uv_codeplug.cc:824
virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt)
Sets the SMS format.
Definition: dmr6x2uv_codeplug.cc:806
void enableIdleChannelTone(bool enable)
Enables/disables the idle channel tone.
Definition: dmr6x2uv_codeplug.cc:233
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 3/C.
Definition: dmr6x2uv_codeplug.cc:312
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:2017
void allocateGPSSystems()
Allocates GPS settings memory section.
Definition: dmr6x2uv_codeplug.cc:2155
virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Links roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2346
bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition: dmr6x2uv_codeplug.cc:2191
bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the downloaded codeplug.
Definition: dmr6x2uv_codeplug.cc:2042
bool allocateBitmaps()
Allocates the bitmaps.
Definition: dmr6x2uv_codeplug.cc:1970
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition: dmr6x2uv_codeplug.cc:2116
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition: dmr6x2uv_codeplug.cc:2100
DMR6X2UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor.
Definition: dmr6x2uv_codeplug.cc:1957
bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition: dmr6x2uv_codeplug.cc:2229
virtual void allocateRoaming()
Allocates memory to store all roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2251
void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition: dmr6x2uv_codeplug.cc:1983
bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition: dmr6x2uv_codeplug.cc:2164
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:2080
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:2094
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:2009
virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Creates roaming channels and zones from codeplug.
Definition: dmr6x2uv_codeplug.cc:2316
bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition: dmr6x2uv_codeplug.cc:2065
void allocateGeneralSettings()
Allocates general settings memory section.
Definition: dmr6x2uv_codeplug.cc:2059
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:2028
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition: dmr6x2uv_codeplug.cc:2135
virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the roaming channels and zones.
Definition: dmr6x2uv_codeplug.cc:2282
void allocateUpdated()
Allocate all code-plug elements that must be written back to the device to maintain a working codeplu...
Definition: dmr6x2uv_codeplug.cc:2000
TimeSlot
Possible timeslots for digital channels.
Definition: channel.hh:385
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
Represents a zone within the generic configuration.
Definition: zone.hh:15
Code
This huge enum lists all possible RX/TX tones that can be associated with analog channels.
Definition: signaling.hh:14
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:790
Some internal used offsets within the codeplug.
Definition: d868uv_codeplug.hh:814
Internal used sizes.
Definition: d868uv_codeplug.hh:895
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:55
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:45
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:26
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: dmr6x2uv_codeplug.cc:10
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:68
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: dmr6x2uv_codeplug.cc:84
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:104
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition: dmr6x2uv_codeplug.cc:159
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