libdrmconf  0.11.3
A library to program DMR radios.
d878uv_codeplug.hh
1 #ifndef D878UV_CODEPLUG_HH
2 #define D878UV_CODEPLUG_HH
3 
4 #include <QDateTime>
5 
6 #include "d868uv_codeplug.hh"
7 #include "signaling.hh"
8 
9 class Channel;
10 class DMRContact;
11 class Zone;
12 class RXGroupList;
13 class ScanList;
14 class GPSSystem;
15 
16 
230 {
231  Q_OBJECT
232 
233 protected:
235  struct NameColor {
236  public:
238  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
240  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
241 
242  protected:
244  typedef enum {
245  Orange=0, Red=1, Yellow=2, Green=3, Turquoise=4, Blue=5, White = 6
246  } CodedColor;
247  };
248 
250  struct TextColor {
251  public:
253  static AnytoneDisplaySettingsExtension::Color decode(uint8_t code);
255  static uint8_t encode(AnytoneDisplaySettingsExtension::Color color);
256 
257  protected:
259  typedef enum {
260  White=0, Black=1, Orange=2, Red=3, Yellow=4, Green=5, Turquoise=6, Blue=7
261  } CodedColor;
262  };
263 
264 public:
274  {
275  public:
277  enum class PTTId {
278  Off = 0,
279  Start = 1,
280  End = 2,
281  Both = 3
282  };
283 
285  enum class APRSPTT {
286  Off = 0,
287  Start = 1,
288  End = 2
289  };
290 
291  protected:
293  ChannelElement(uint8_t *ptr, unsigned size);
294 
295  public:
297  explicit ChannelElement(uint8_t *ptr);
298 
300  void clear();
301 
303  virtual PTTId pttIDSetting() const;
305  virtual void setPTTIDSetting(PTTId ptt);
306 
308  virtual bool roamingEnabled() const;
310  virtual void enableRoaming(bool enable);
311  // Moved
313  bool dataACK() const;
315  void enableDataACK(bool enable);
316 
318  bool txDigitalAPRS() const;
320  void enableTXDigitalAPRS(bool enable);
322  virtual bool txAnalogAPRS() const;
324  virtual void enableTXAnalogAPRS(bool enable);
325 
327  virtual APRSPTT analogAPRSPTTSetting() const;
329  virtual void setAnalogAPRSPTTSetting(APRSPTT ptt);
331  virtual APRSPTT digitalAPRSPTTSetting() const;
333  virtual void setDigitalAPRSPTTSetting(APRSPTT ptt);
334 
336  virtual unsigned digitalAPRSSystemIndex() const;
338  virtual void setDigitalAPRSSystemIndex(unsigned idx);
339 
341  virtual int frequenyCorrection() const;
343  virtual void setFrequencyCorrection(int corr);
344 
346  virtual unsigned int fmAPRSFrequencyIndex() const;
348  virtual void setFMAPRSFrequencyIndex(unsigned int idx);
349 
351  Channel *toChannelObj(Context &ctx) const;
353  bool linkChannelObj(Channel *c, Context &ctx) const;
355  bool fromChannelObj(const Channel *c, Context &ctx);
356 
357  protected:
361  static constexpr unsigned int pttIDSetting() { return 0x0019; }
362  static constexpr unsigned int roamingEnabled() { return 0x0034; }
363  static constexpr unsigned int dataACK() { return 0x0034; }
364  static constexpr unsigned int txDMRAPRS() { return 0x0035; }
365  static constexpr unsigned int fmAPRSPTTSetting() { return 0x0036; }
366  static constexpr unsigned int dmrAPRSPTTSetting() { return 0x0037; }
367  static constexpr unsigned int dmrAPRSSystemIndex() { return 0x0038; }
368  static constexpr unsigned int frequenyCorrection() { return 0x0039; }
369  static constexpr unsigned int fmAPRSFrequencyIndex() { return 0x003c; }
371  };
372  };
373 
382  {
383  protected:
385  struct KeyFunction {
386  public:
391 
392  protected:
394  typedef enum {
395  Off = 0x00, Voltage = 0x01, Power = 0x02, Repeater = 0x03, Reverse = 0x04,
396  Encryption = 0x05, Call = 0x06, VOX = 0x07, ToggleVFO = 0x08, SubPTT = 0x09,
397  Scan = 0x0a, WFM = 0x0b, Alarm = 0x0c, RecordSwitch = 0x0d, Record = 0x0e, SMS = 0x0f,
398  Dial = 0x10, Monitor = 0x12, ToggleMainChannel = 0x13, HotKey1 = 0x14,
399  HotKey2 = 0x15, HotKey3 = 0x16, HotKey4 = 0x17, HotKey5 = 0x18, HotKey6 = 0x19,
400  WorkAlone = 0x1a, SkipChannel = 0x1b, DMRMonitor = 0x1c, SubChannel = 0x1d,
401  PriorityZone = 0x1e, VFOScan = 0x1f, MICSoundQuality = 0x20, LastCallReply = 0x21,
402  ChannelType = 0x22, Roaming = 0x24, ChannelRanging = 0x25, MaxVolume = 0x26, Slot = 0x27,
403  APRSType = 0x28, Zone = 0x29, RoamingSet = 0x2a, APRSSet = 0x2b, Mute=0x2c,
404  CtcssDcsSet=0x2d, TBSTSend = 0x2e, Bluetooth = 0x2f, GPS = 0x30,
405  ChannelName = 0x31, CDTScan = 0x32, APRSSend = 0x33, APRSInfo = 0x34
406  } KeyFunctionCode;
407  };
408 
410  struct TimeZone {
411  public:
413  static uint8_t encode(const QTimeZone& zone);
415  static QTimeZone decode(uint8_t code);
416 
417  protected:
419  static QVector<QTimeZone> _timeZones;
420  };
421 
422  protected:
424  enum FreqStep {
432  FREQ_STEP_50kHz = 7
433  };
434 
437  DTMF_DUR_50ms = 0, DTMF_DUR_100ms = 1, DTMF_DUR_200ms = 2, DTMF_DUR_300ms = 3, DTMF_DUR_500ms = 4
438  };
439 
441  enum class TBSTFrequency {
442  Hz1000 = 0, Hz1450 = 1, Hz1750 = 2, Hz2100 = 3
443  };
444 
446  enum class STEFrequency {
447  Off = 0, Hz55_2 = 1, Hz259_2 = 2
448  };
449 
451  enum class BackgroundImage {
452  Default=0, Custom1=1, Custom2=2
453  };
454 
455  protected:
457  GeneralSettingsElement(uint8_t *ptr, unsigned size);
458 
459  public:
461  GeneralSettingsElement(uint8_t *ptr);
462 
464  static constexpr unsigned int size() { return 0x00f0; }
465 
467  void clear();
468 
470  virtual unsigned transmitTimeout() const;
472  virtual void setTransmitTimeout(unsigned tot);
473 
478 
479  QTimeZone gpsTimeZone() const;
480  void setGPSTimeZone(const QTimeZone &zone);
481 
483  virtual Frequency vfoFrequencyStep() const;
485  virtual void setVFOFrequencyStep(Frequency kHz);
486 
507 
514  virtual double steFrequency() const;
517  virtual void setSTEFrequency(double freq);
518 
520  virtual Interval groupCallHangTime() const;
522  virtual void setGroupCallHangTime(Interval sec);
524  virtual Interval privateCallHangTime() const;
526  virtual void setPrivateCallHangTime(Interval sec);
527 
529  virtual Interval preWaveDelay() const;
531  virtual void setPreWaveDelay(Interval ms);
533  virtual Interval wakeHeadPeriod() const;
535  virtual void setWakeHeadPeriod(Interval ms);
536 
538  virtual unsigned wfmChannelIndex() const;
540  virtual void setWFMChannelIndex(unsigned idx);
542  virtual bool wfmVFOEnabled() const;
544  virtual void enableWFMVFO(bool enable);
545 
547  virtual unsigned dtmfToneDuration() const;
549  virtual void setDTMFToneDuration(unsigned ms);
550 
552  virtual bool manDown() const;
554  virtual void enableManDown(bool enable);
555 
557  virtual bool wfmMonitor() const;
559  virtual void enableWFMMonitor(bool enable);
560 
562  virtual Frequency tbstFrequency() const;
564  virtual void setTBSTFrequency(Frequency freq);
565 
567  virtual bool proMode() const;
569  virtual void enableProMode(bool enable);
570 
572  virtual bool filterOwnID() const;
574  virtual void enableFilterOwnID(bool enable);
576  virtual bool remoteStunKill() const;
578  virtual void enableRemoteStunKill(bool enable);
580  virtual bool remoteMonitor() const;
582  virtual void enableRemoteMonitor(bool enable);
583 
585  virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const;
587  virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match);
589  virtual bool monitorColorCodeMatch() const;
591  virtual void enableMonitorColorCodeMatch(bool enable);
593  virtual bool monitorIDMatch() const;
595  virtual void enableMonitorIDMatch(bool enable);
597  virtual bool monitorTimeSlotHold() const;
599  virtual void enableMonitorTimeSlotHold(bool enable);
600 
602  virtual Interval manDownDelay() const;
604  virtual void setManDownDelay(Interval sec);
606  virtual unsigned fmCallHold() const;
608  virtual void setFMCallHold(unsigned sec);
609 
611  virtual bool gpsMessageEnabled() const;
613  virtual void enableGPSMessage(bool enable);
614 
616  virtual bool maintainCallChannel() const;
618  virtual void enableMaintainCallChannel(bool enable);
619 
621  virtual unsigned priorityZoneAIndex() const;
623  virtual void setPriorityZoneAIndex(unsigned idx);
625  virtual unsigned priorityZoneBIndex() const;
627  virtual void setPriorityZoneBIndex(unsigned idx);
628 
630  virtual bool bluetooth() const;
632  virtual void enableBluetooth(bool enable);
633 
635  virtual bool btAndInternalMic() const;
637  virtual void enableBTAndInternalMic(bool enable);
638 
640  virtual bool btAndInternalSpeaker() const;
642  virtual void enableBTAndInternalSpeaker(bool enable);
643 
645  virtual bool pluginRecTone() const;
647  virtual void enablePluginRecTone(bool enable);
648 
650  virtual Interval gpsUpdatePeriod() const;
652  virtual void setGPSUpdatePeriod(Interval sec);
653 
655  virtual unsigned int btMicGain() const;
657  virtual void setBTMicGain(unsigned int gain);
659  virtual unsigned int btSpeakerGain() const;
661  virtual void setBTSpeakerGain(unsigned int gain);
662 
664  virtual bool displayChannelNumber() const;
666  virtual void enableDisplayChannelNumber(bool enable);
667 
668  bool showCurrentContact() const;
669  void enableShowCurrentContact(bool enable);
670 
672  virtual Interval autoRoamPeriod() const;
674  virtual void setAutoRoamPeriod(Interval min);
675 
676  bool keyToneLevelAdjustable() const;
677  unsigned keyToneLevel() const;
678  void setKeyToneLevel(unsigned level);
680 
683 
684  bool gpsUnitsImperial() const;
685  void enableGPSUnitsImperial(bool enable);
686 
687  bool knobLock() const;
688  void enableKnobLock(bool enable);
689  bool keypadLock() const;
690  void enableKeypadLock(bool enable);
691  bool sidekeysLock() const;
692  void enableSidekeysLock(bool enable);
693  bool keyLockForced() const;
694  void enableKeyLockForced(bool enable);
695 
697  virtual Interval autoRoamDelay() const;
699  virtual void setAutoRoamDelay(Interval sec);
700 
706  virtual BackgroundImage standbyBackgroundImage() const;
709 
710  bool showLastHeard() const;
711  void enableShowLastHeard(bool enable);
712 
714  virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const;
716  virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt);
717 
719  virtual Frequency autoRepeaterMinFrequencyVHF() const;
721  virtual void setAutoRepeaterMinFrequencyVHF(Frequency Hz);
723  virtual Frequency autoRepeaterMaxFrequencyVHF() const;
725  virtual void setAutoRepeaterMaxFrequencyVHF(Frequency Hz);
726 
728  virtual Frequency autoRepeaterMinFrequencyUHF() const;
730  virtual void setAutoRepeaterMinFrequencyUHF(Frequency Hz);
732  virtual Frequency autoRepeaterMaxFrequencyUHF() const;
734  virtual void setAutoRepeaterMaxFrequencyUHF(Frequency Hz);
735 
740 
742  virtual bool fmSendIDAndContact() const;
744  virtual void enableFMSendIDAndContact(bool enable);
745 
746  bool defaultChannel() const;
747  void enableDefaultChannel(bool enable);
748  unsigned defaultZoneIndexA() const;
749  void setDefaultZoneIndexA(unsigned idx);
750  unsigned defaultZoneIndexB() const;
751  void setDefaultZoneIndexB(unsigned idx);
752  bool defaultChannelAIsVFO() const;
753  unsigned defaultChannelAIndex() const;
754  void setDefaultChannelAIndex(unsigned idx);
756  bool defaultChannelBIsVFO() const;
757  unsigned defaultChannelBIndex() const;
758  void setDefaultChannelBIndex(unsigned idx);
760 
762  virtual unsigned defaultRoamingZoneIndex() const;
764  virtual void setDefaultRoamingZoneIndex(unsigned idx);
765 
767  virtual bool repeaterRangeCheck() const;
769  virtual void enableRepeaterRangeCheck(bool enable);
771  virtual Interval repeaterRangeCheckInterval() const;
773  virtual void setRepeaterRangeCheckInterval(Interval sec);
775  virtual unsigned repeaterRangeCheckCount() const;
777  virtual void setRepeaterRangeCheckCount(unsigned n);
778 
783 
785  virtual Interval txBacklightDuration() const;
787  virtual void setTXBacklightDuration(Interval sec);
788 
790  virtual bool separateDisplay() const;
792  virtual void enableSeparateDisplay(bool enable);
793 
794  bool keepLastCaller() const;
795  void enableKeepLastCaller(bool enable);
796 
801 
803  virtual bool repeaterCheckNotification() const;
805  virtual void enableRepeaterCheckNotification(bool enable);
806 
811 
813  virtual bool roaming() const;
815  virtual void enableRoaming(bool enable);
816 
818  virtual Interval muteDelay() const;
820  virtual void setMuteDelay(Interval min);
821 
823  virtual unsigned repeaterCheckNumNotifications() const;
825  virtual void setRepeaterCheckNumNotifications(unsigned num);
826 
828  virtual bool bootGPSCheck() const;
830  virtual void enableBootGPSCheck(bool enable);
832  virtual bool bootReset() const;
834  virtual void enableBootReset(bool enable);
835 
837  virtual bool btHoldTimeEnabled() const;
839  virtual bool btHoldTimeInfinite() const;
841  virtual Interval btHoldTime() const;
843  virtual void setBTHoldTime(Interval interval);
845  virtual void setBTHoldTimeInfinite();
847  virtual void disableBTHoldTime();
848 
850  virtual Interval btRXDelay() const;
852  virtual void setBTRXDelay(Interval delay);
853 
854  bool fromConfig(const Flags &flags, Context &ctx);
855  bool updateConfig(Context &ctx);
856  bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err);
857 
858  protected:
862  static constexpr unsigned int transmitTimeout() { return 0x0004; }
863  static constexpr unsigned int language() { return 0x0005; }
864  static constexpr unsigned int vfoFrequencyStep() { return 0x0008; }
865  static constexpr unsigned int steType() { return 0x0017; }
866  static constexpr unsigned int steFrequency() { return 0x0018; }
867  static constexpr unsigned int groupCallHangTime() { return 0x0019; }
868  static constexpr unsigned int privateCallHangTime() { return 0x001a; }
869  static constexpr unsigned int preWaveDelay() { return 0x001b; }
870  static constexpr unsigned int wakeHeadPeriod() { return 0x001c; }
871  static constexpr unsigned int wfmChannelIndex() { return 0x001d; }
872  static constexpr unsigned int wfmVFOEnabled() { return 0x001e; }
873  static constexpr unsigned int dtmfToneDuration() { return 0x0023; }
874  static constexpr unsigned int manDown() { return 0x0024; }
875  static constexpr unsigned int wfmMonitor() { return 0x002b; }
876  static constexpr unsigned int tbstFrequency() { return 0x002e; }
877  static constexpr unsigned int proMode() { return 0x0034; }
878  static constexpr unsigned int filterOwnID() { return 0x0038; }
879  static constexpr unsigned int remoteStunKill() { return 0x003c; }
880  static constexpr unsigned int remoteMonitor() { return 0x003e; }
881  static constexpr unsigned int monSlotMatch() { return 0x0049; }
882  static constexpr unsigned int monColorCodeMatch() { return 0x004a; }
883  static constexpr unsigned int monIDMatch() { return 0x004b; }
884  static constexpr unsigned int monTimeSlotHold() { return 0x004c; }
885  static constexpr unsigned int manDownDelay() { return 0x004f; }
886  static constexpr unsigned int fmCallHold() { return 0x0050; }
887  static constexpr unsigned int enableGPSMessage() { return 0x0053; }
888  static constexpr unsigned int maintainCallChannel() { return 0x006e; }
889  static constexpr unsigned int priorityZoneA() { return 0x006f; }
890  static constexpr unsigned int priorityZoneB() { return 0x0070; }
891  static constexpr unsigned int bluetooth() { return 0x00b1; }
892  static constexpr unsigned int btAndInternalMic() { return 0x00b2; }
893  static constexpr unsigned int btAndInternalSpeaker(){ return 0x00b3; }
894  static constexpr unsigned int pluginRecTone() { return 0x00b4; }
895  static constexpr unsigned int gpsRangingInterval() { return 0x00b5; }
896  static constexpr unsigned int btMicGain() { return 0x00b6; }
897  static constexpr unsigned int btSpeakerGain() { return 0x00b7; }
898  static constexpr unsigned int showChannelNumber() { return 0x00b8; }
899  static constexpr unsigned int showCurrentContact() { return 0x00b9; }
900  static constexpr unsigned int autoRoamPeriod() { return 0x00ba; }
901  static constexpr unsigned int keyToneLevel() { return 0x00bb; }
902  static constexpr unsigned int callColor() { return 0x00bc; }
903  static constexpr unsigned int gpsUnits() { return 0x00bd; }
904  static constexpr unsigned int knobLock() { return 0x00be; }
905  static constexpr unsigned int keypadLock() { return 0x00be; }
906  static constexpr unsigned int sideKeyLock() { return 0x00be; }
907  static constexpr unsigned int forceKeyLock() { return 0x00be; }
908  static constexpr unsigned int autoRoamDelay() { return 0x00bf; }
909  static constexpr unsigned int standbyTextColor() { return 0x00c0; }
910  static constexpr unsigned int standbyBackground() { return 0x00c1; }
911  static constexpr unsigned int showLastHeard() { return 0x00c2; }
912  static constexpr unsigned int smsFormat() { return 0x00c3; }
913  static constexpr unsigned int autoRepMinVHF() { return 0x00c4; }
914  static constexpr unsigned int autoRepMaxVHF() { return 0x00c8; }
915  static constexpr unsigned int autoRepMinUHF() { return 0x00cc; }
916  static constexpr unsigned int autoRepMaxUHF() { return 0x00d0; }
917  static constexpr unsigned int autoRepeaterDirB() { return 0x00d4; }
918  static constexpr unsigned int fmSendIDAndContact() { return 0x00d5; }
919  static constexpr unsigned int defaultChannels() { return 0x00d7; }
920  static constexpr unsigned int defaultZoneA() { return 0x00d8; }
921  static constexpr unsigned int defaultZoneB() { return 0x00d9; }
922  static constexpr unsigned int defaultChannelA() { return 0x00da; }
923  static constexpr unsigned int defaultChannelB() { return 0x00db; }
924  static constexpr unsigned int defaultRoamingZone() { return 0x00dc; }
925  static constexpr unsigned int repRangeCheck() { return 0x00dd; }
926  static constexpr unsigned int rangeCheckInterval() { return 0x00de; }
927  static constexpr unsigned int rangeCheckCount() { return 0x00df; }
928  static constexpr unsigned int roamStartCondition() { return 0x00e0; }
929  static constexpr unsigned int txBacklightDuration() { return 0x00e1; }
930  static constexpr unsigned int displaySeparator() { return 0x00e2; }
931  static constexpr unsigned int keepLastCaller() { return 0x00e3; }
932  static constexpr unsigned int channelNameColor() { return 0x00e4; }
933  static constexpr unsigned int repCheckNotify() { return 0x00e5; }
934  static constexpr unsigned int rxBacklightDuration() { return 0x00e6; }
935  static constexpr unsigned int roaming() { return 0x00e7; }
936  static constexpr unsigned int muteDelay() { return 0x00e9; }
937  static constexpr unsigned int repCheckNumNotify() { return 0x00ea; }
938  static constexpr unsigned int bootGPSCheck() { return 0x00eb; }
939  static constexpr unsigned int bootReset() { return 0x00ec; }
940  static constexpr unsigned int btHoldTime() { return 0x00ed; }
941  static constexpr unsigned int btRXDelay() { return 0x00ee; }
943  };
944  };
945 
951  {
952  protected:
954  ExtendedSettingsElement(uint8_t *ptr, unsigned size);
955 
956  public:
958  explicit ExtendedSettingsElement(uint8_t *ptr);
959 
961  static constexpr unsigned int size() { return 0x00000200; }
962 
964  void clear();
965 
966  bool sendTalkerAlias() const;
967  void enableSendTalkerAlias(bool enable);
968 
969  AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const;
970  void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource mode);
971 
972  AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const;
973  void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding);
974 
976  virtual bool bluetoothPTTLatch() const;
978  virtual void enableBluetoothPTTLatch(bool enable);
979 
981  virtual bool infiniteBluetoothPTTSleepDelay() const;
983  virtual Interval bluetoothPTTSleepDelay() const;
985  virtual void setBluetoothPTTSleepDelay(Interval delay);
987  virtual void setInfiniteBluetoothPTTSleepDelay();
988 
990  virtual bool hasAutoRepeaterUHF2OffsetIndex() const;
992  virtual unsigned autoRepeaterUHF2OffsetIndex() const;
994  virtual void setAutoRepeaterUHF2OffsetIndex(unsigned idx);
996  virtual void clearAutoRepeaterUHF2OffsetIndex();
997 
999  virtual bool hasAutoRepeaterVHF2OffsetIndex() const;
1001  virtual unsigned autoRepeaterVHF2OffsetIndex() const;
1003  virtual void setAutoRepeaterVHF2OffsetIndex(unsigned idx);
1005  virtual void clearAutoRepeaterVHF2OffsetIndex();
1006 
1008  virtual Frequency autoRepeaterVHF2MinFrequency() const;
1010  virtual void setAutoRepeaterVHF2MinFrequency(Frequency hz);
1012  virtual Frequency autoRepeaterVHF2MaxFrequency() const;
1014  virtual void setAutoRepeaterVHF2MaxFrequency(Frequency hz);
1016  virtual Frequency autoRepeaterUHF2MinFrequency() const;
1018  virtual void setAutoRepeaterUHF2MinFrequency(Frequency hz);
1020  virtual Frequency autoRepeaterUHF2MaxFrequency() const;
1022  virtual void setAutoRepeaterUHF2MaxFrequency(Frequency hz);
1023 
1028 
1030  virtual Interval steDuration() const;
1032  virtual void setSTEDuration(Interval dur);
1033 
1035  virtual bool infiniteManDialGroupCallHangTime() const;
1037  virtual Interval manDialGroupCallHangTime() const;
1039  virtual void setManDialGroupCallHangTime(Interval dur);
1041  virtual void setManDialGroupCallHangTimeInfinite();
1042 
1044  virtual bool infiniteManDialPrivateCallHangTime() const;
1046  virtual Interval manDialPrivateCallHangTime() const;
1048  virtual void setManDialPrivateCallHangTime(Interval dur);
1051 
1054 
1056  virtual AnytoneDMRSettingsExtension::EncryptionType encryption() const;
1058  virtual void setEncryption(AnytoneDMRSettingsExtension::EncryptionType mode);
1059 
1061  virtual bool totNotification() const;
1063  virtual void enableTOTNotification(bool enable);
1064 
1066  virtual bool atpc() const;
1068  virtual void enableATPC(bool enable);
1069 
1074 
1076  virtual bool resetAutoShutdownOnCall() const;
1078  virtual void enableResetAutoShutdownOnCall(bool enable);
1079 
1081  virtual bool showColorCode() const;
1083  virtual void enableShowColorCode(bool enable);
1085  virtual bool showTimeSlot() const;
1087  virtual void enableShowTimeSlot(bool enable);
1089  virtual bool showChannelType() const;
1091  virtual void enableShowChannelType(bool enable);
1092 
1094  virtual bool fmIdleTone() const;
1096  virtual void enableFMIdleTone(bool enable);
1097 
1102 
1104  virtual unsigned int fmMicGain() const;
1106  virtual void setFMMicGain(unsigned int gain);
1107 
1109  virtual bool gpsRoaming() const;
1111  virtual void enableGPSRoaming(bool enable);
1112 
1114  virtual void callEndToneMelody(Melody &melody) const;
1116  virtual void setCallEndToneMelody(const Melody &melody);
1118  virtual void allCallToneMelody(Melody &melody) const;
1120  virtual void setAllCallToneMelody(const Melody &melody);
1121 
1123  virtual bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1125  virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack());
1127  virtual bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack());
1128 
1129  public:
1131  struct Limit {
1132  static constexpr unsigned int maxBluetoothPTTSleepDelay() { return 4; }
1133  };
1134 
1135  protected:
1137  struct Offset {
1139  static constexpr unsigned int sendTalkerAlias() { return 0x0000; }
1140  static constexpr unsigned int talkerAliasDisplay() { return 0x001e; }
1141  static constexpr unsigned int talkerAliasEncoding() { return 0x001f; }
1142  static constexpr unsigned int btPTTLatch() { return 0x0020; }
1143  static constexpr unsigned int autoRepeaterUHF2OffsetIndex() { return 0x0022; }
1144  static constexpr unsigned int autoRepeaterVHF2OffsetIndex() { return 0x0023; }
1145  static constexpr unsigned int autoRepeaterVHF2MinFrequency() { return 0x0024; }
1146  static constexpr unsigned int autoRepeaterVHF2MaxFrequency() { return 0x0028; }
1147  static constexpr unsigned int autoRepeaterUHF2MinFrequency() { return 0x002c; }
1148  static constexpr unsigned int autoRepeaterUHF2MaxFrequency() { return 0x0030; }
1149  static constexpr unsigned int btPTTSleepDelay() { return 0x0034; }
1150  static constexpr unsigned int gpsMode() { return 0x0035; }
1151  static constexpr unsigned int steDuration() { return 0x0036; }
1152  static constexpr unsigned int manGrpCallHangTime() { return 0x0037; }
1153  static constexpr unsigned int manPrivCallHangTime() { return 0x0038; }
1154  static constexpr unsigned int channelBNameColor() { return 0x0039; }
1155  static constexpr unsigned int encryptionType() { return 0x003a; }
1156  static constexpr unsigned int totNotification() { return 0x003b; }
1157  static constexpr unsigned int atpc() { return 0x003c; }
1158  static constexpr unsigned int zoneANameColor() { return 0x003d; }
1159  static constexpr unsigned int zoneBNameColor() { return 0x003e; }
1160  static constexpr unsigned int autoShutdownMode() { return 0x003f; }
1161  static constexpr unsigned int displayColorCode() { return 0x0040; } // bit 2
1162  static constexpr unsigned int displayTimeSlot() { return 0x0040; } // bit 1
1163  static constexpr unsigned int displayChannelType() { return 0x0040; } // bit 0
1164  static constexpr unsigned int fmIdleTone() { return 0x0041; }
1165  static constexpr unsigned int dateFormat() { return 0x0042; }
1166  static constexpr unsigned int analogMicGain() { return 0x0043; }
1167  static constexpr unsigned int gpsRoaming() { return 0x0044; }
1168  static constexpr unsigned int callEndTones() { return 0x0046; }
1169  static constexpr unsigned int callEndDurations() { return 0x0050; }
1170  static constexpr unsigned int allCallTones() { return 0x005a; }
1171  static constexpr unsigned int allCallDurations() { return 0x0064; }
1173  };
1174  };
1175 
1176 
1180  {
1181  protected:
1183  FMAPRSFrequencyNamesElement(uint8_t *ptr, size_t size);
1184 
1185  public:
1187  explicit FMAPRSFrequencyNamesElement(uint8_t *ptr);
1188 
1190  static constexpr unsigned int size() { return 0x0080; }
1191 
1192  void clear();
1193 
1195  virtual QString name(unsigned int n) const;
1197  virtual void setName(unsigned int n, const QString &name);
1198 
1199  public:
1201  struct Limit {
1202  static constexpr unsigned int nameLength() { return 16; }
1203  };
1204 
1205  protected:
1207  struct Offset {
1209  static constexpr unsigned int betweenNames() { return 0x0010; }
1211  };
1212  };
1213 
1214 
1221  {
1222  protected:
1224  APRSSettingsElement(uint8_t *ptr, unsigned size);
1225 
1227  enum class SignalingType {
1228  Off=0, CTCSS=1, DCS=2
1229  };
1230 
1231  public:
1233  explicit APRSSettingsElement(uint8_t *ptr);
1234 
1236  static constexpr unsigned int size() { return 0x0100; }
1237 
1239  void clear();
1240  bool isValid() const;
1241 
1243  virtual Interval fmTXDelay() const;
1245  virtual void setFMTXDelay(Interval ms);
1246 
1248  virtual Signaling::Code txTone() const;
1250  virtual void setTXTone(Signaling::Code code);
1251 
1253  virtual Interval manualTXInterval() const;
1255  virtual void setManualTXInterval(Interval sec);
1256 
1258  virtual bool autoTX() const;
1260  virtual Interval autoTXInterval() const;
1262  virtual void setAutoTXInterval(Interval sec);
1264  virtual void disableAutoTX();
1265 
1267  virtual bool fixedLocationEnabled() const;
1269  virtual QGeoCoordinate fixedLocation() const;
1271  virtual void setFixedLocation(QGeoCoordinate &loc);
1273  virtual void disableFixedLocation();
1274 
1276  virtual QString destination() const;
1278  virtual unsigned destinationSSID() const;
1280  virtual void setDestination(const QString &call, unsigned ssid);
1282  virtual QString source() const;
1284  virtual unsigned sourceSSID() const;
1286  virtual void setSource(const QString &call, unsigned ssid);
1287 
1289  virtual QString path() const;
1291  virtual void setPath(const QString &path);
1292 
1294  virtual APRSSystem::Icon icon() const;
1296  virtual void setIcon(APRSSystem::Icon icon);
1297 
1299  virtual Channel::Power power() const;
1301  virtual void setPower(Channel::Power power);
1302 
1304  virtual Interval fmPreWaveDelay() const;
1306  virtual void setFMPreWaveDelay(Interval ms);
1307 
1309  virtual bool dmrChannelIsSelected(unsigned n) const;
1311  virtual unsigned dmrChannelIndex(unsigned n) const;
1313  virtual void setDMRChannelIndex(unsigned n, unsigned idx);
1315  virtual void setDMRChannelSelected(unsigned n);
1316 
1318  virtual unsigned dmrDestination(unsigned n) const;
1320  virtual void setDMRDestination(unsigned n, unsigned idx);
1321 
1323  virtual DMRContact::Type dmrCallType(unsigned n) const;
1325  virtual void setDMRCallType(unsigned n, DMRContact::Type type);
1326 
1328  virtual bool dmrTimeSlotOverride(unsigned n);
1330  virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const;
1332  virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts);
1334  virtual void clearDMRTimeSlotOverride(unsigned n);
1335 
1337  virtual bool dmrRoaming() const;
1339  virtual void enableDMRRoaming(bool enable);
1340 
1342  virtual Interval dmrPreWaveDelay() const;
1344  virtual void setDMRPreWaveDelay(Interval ms);
1345 
1347  virtual bool infiniteDisplayTime() const;
1349  virtual Interval displayTime() const;
1351  virtual void setDisplayTime(Interval dur);
1353  virtual void setDisplayTimeInifinite();
1354 
1359 
1361  virtual bool fmPassAll() const;
1363  virtual void enableFMPassAll(bool enable);
1364 
1366  virtual bool fmFrequencySet(unsigned int n) const;
1368  virtual Frequency fmFrequency(unsigned int n) const;
1370  virtual void setFMFrequency(unsigned int n, Frequency f);
1372  virtual void clearFMFrequency(unsigned int n);
1373 
1375  virtual bool reportPosition() const;
1377  virtual void enableReportPosition(bool enable);
1379  virtual bool reportMicE() const;
1381  virtual void enableReportMicE(bool enable);
1383  virtual bool reportObject() const;
1385  virtual void enableReportObject(bool enable);
1387  virtual bool reportItem() const;
1389  virtual void enableReportItem(bool enable);
1391  virtual bool reportMessage() const;
1393  virtual void enableReportMessage(bool enable);
1395  virtual bool reportWeather() const;
1397  virtual void enableReportWeather(bool enable);
1399  virtual bool reportNMEA() const;
1401  virtual void enableReportNMEA(bool enable);
1403  virtual bool reportStatus() const;
1405  virtual void enableReportStatus(bool enable);
1407  virtual bool reportOther() const;
1409  virtual void enableReportOther(bool enable);
1410 
1412  virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx,
1414  const ErrorStack &err=ErrorStack());
1416  virtual APRSSystem *toFMAPRSSystem(
1417  Context &ctx, const FMAPRSFrequencyNamesElement &names, const ErrorStack &err=ErrorStack());
1420  virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx);
1421 
1423  virtual bool fromDMRAPRSSystems(Context &ctx);
1425  virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx);
1427  virtual GPSSystem *toDMRAPRSSystemObj(int idx) const;
1429  virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const;
1430 
1431  public:
1433  struct Limit {
1435  static constexpr unsigned int callLength() { return 0x0006; }
1437  static constexpr unsigned int pathLength() { return 0x0020; }
1439  static constexpr unsigned int dmrSystems() { return 0x0008; }
1441  static constexpr unsigned int fmFrequencies() { return 0x0008; }
1442  };
1443 
1444  protected:
1446  struct Offset {
1448  static constexpr unsigned int fmTXDelay() { return 0x0005; }
1449  static constexpr unsigned int fmSigType() { return 0x0006; }
1450  static constexpr unsigned int fmCTCSS() { return 0x0007; }
1451  static constexpr unsigned int fmDCS() { return 0x0008; }
1452  static constexpr unsigned int manualTXInterval() { return 0x000a; }
1453  static constexpr unsigned int autoTXInterval() { return 0x000b; }
1454  static constexpr unsigned int fmTXMonitor() { return 0x000c; }
1455  static constexpr unsigned int fixedLocation() { return 0x000d; }
1456  static constexpr unsigned int fixedLatDeg() { return 0x000e; }
1457  static constexpr unsigned int fixedLatMin() { return 0x000f; }
1458  static constexpr unsigned int fixedLatSec() { return 0x0010; }
1459  static constexpr unsigned int fixedLatSouth() { return 0x0011; }
1460  static constexpr unsigned int fixedLonDeg() { return 0x0012; }
1461  static constexpr unsigned int fixedLonMin() { return 0x0013; }
1462  static constexpr unsigned int fixedLonSec() { return 0x0014; }
1463  static constexpr unsigned int fixedLonWest() { return 0x0015; }
1464  static constexpr unsigned int destinationCall() { return 0x0016; }
1465  static constexpr unsigned int destinationSSID() { return 0x001c; }
1466  static constexpr unsigned int sourceCall() { return 0x001d; }
1467  static constexpr unsigned int sourceSSID() { return 0x0023; }
1468  static constexpr unsigned int path() { return 0x0024; }
1469  static constexpr unsigned int symbolTable() { return 0x0039; }
1470  static constexpr unsigned int symbol() { return 0x003a; }
1471  static constexpr unsigned int fmPower() { return 0x003b; }
1472  static constexpr unsigned int fmPrewaveDelay() { return 0x003c; }
1473  static constexpr unsigned int dmrChannelIndices() { return 0x0040; }
1474  static constexpr unsigned int betweenDMRChannelIndices() { return 0x0002; }
1475  static constexpr unsigned int dmrDestinations() { return 0x0050; }
1476  static constexpr unsigned int betweenDMRDestinations() { return 0x0004; }
1477  static constexpr unsigned int dmrCallTypes() { return 0x0070; }
1478  static constexpr unsigned int betweenDMRCallTypes() { return 0x0001; }
1479  static constexpr unsigned int roamingSupport() { return 0x0078; }
1480  static constexpr unsigned int dmrTimeSlots() { return 0x0079; }
1481  static constexpr unsigned int betweenDMRTimeSlots() { return 0x0001; }
1482  static constexpr unsigned int dmrPrewaveDelay() { return 0x0081; }
1483  static constexpr unsigned int displayInterval() { return 0x0082; }
1484  static constexpr unsigned int fixedHeight() { return 0x00a6; }
1485  static constexpr unsigned int reportPosition() { return 0x00a8; }
1486  static constexpr unsigned int reportMicE() { return 0x00a8; }
1487  static constexpr unsigned int reportObject() { return 0x00a8; }
1488  static constexpr unsigned int reportItem() { return 0x00a8; }
1489  static constexpr unsigned int reportMessage() { return 0x00a8; }
1490  static constexpr unsigned int reportWeather() { return 0x00a8; }
1491  static constexpr unsigned int reportNMEA() { return 0x00a8; }
1492  static constexpr unsigned int reportStatus() { return 0x00a8; }
1493  static constexpr unsigned int reportOther() { return 0x00a9; }
1494  static constexpr unsigned int fmWidth() { return 0x00aa; }
1495  static constexpr unsigned int passAll() { return 0x00ab; }
1496  static constexpr unsigned int fmFrequencies() { return 0x00ac; }
1497  static constexpr unsigned int betweenFMFrequencies() { return 0x0004; }
1498 
1500  };
1501  };
1502 
1505  {
1506  protected:
1508  AnalogAPRSMessageElement(uint8_t *ptr, size_t size);
1509 
1510  public:
1512  AnalogAPRSMessageElement(uint8_t *ptr);
1513 
1515  static constexpr unsigned int size() { return 0x0040; }
1516 
1517  void clear();
1518 
1520  virtual QString message() const;
1522  virtual void setMessage(const QString &msg);
1523 
1524  public:
1526  struct Limit {
1527  static constexpr unsigned int length() { return 60; }
1528  };
1529  };
1530 
1536  {
1537  protected:
1539  AnalogAPRSRXEntryElement(uint8_t *ptr, unsigned size);
1540 
1541  public:
1543  AnalogAPRSRXEntryElement(uint8_t *ptr);
1544 
1546  static constexpr unsigned int size() { return 0x0008; }
1547 
1549  void clear();
1551  bool isValid() const;
1552 
1554  virtual QString call() const;
1556  virtual unsigned ssid() const;
1558  virtual void setCall(const QString &call, unsigned ssid);
1559  };
1560 
1566  {
1567  protected:
1569  RoamingChannelElement(uint8_t *ptr, unsigned size);
1570 
1571  protected:
1574  Disabled = 16
1575  };
1576 
1579  TS1 = 0,
1580  TS2 = 1
1581  };
1582 
1583  public:
1585  RoamingChannelElement(uint8_t *ptr);
1586 
1588  static constexpr unsigned int size() { return 0x0020; }
1589 
1591  void clear();
1592 
1594  virtual unsigned rxFrequency() const;
1596  virtual void setRXFrequency(unsigned hz);
1598  virtual unsigned txFrequency() const;
1600  virtual void setTXFrequency(unsigned hz);
1601 
1603  virtual bool hasColorCode() const;
1605  virtual unsigned colorCode() const;
1607  virtual void setColorCode(unsigned cc);
1609  virtual void disableColorCode();
1610 
1612  virtual DMRChannel::TimeSlot timeSlot() const;
1614  virtual void setTimeSlot(DMRChannel::TimeSlot ts);
1615 
1617  virtual QString name() const;
1619  virtual void setName(const QString &name);
1620 
1622  virtual bool fromChannel(const RoamingChannel *ch);
1624  virtual RoamingChannel *toChannel(Context &ctx);
1625 
1626  public:
1628  struct Limit {
1629  static constexpr unsigned int nameLength() { return 16; }
1630  };
1631 
1632  protected:
1634  struct Offset {
1636  static constexpr unsigned int rxFrequency() { return 0x0000; }
1637  static constexpr unsigned int txFrequency() { return 0x0004; }
1638  static constexpr unsigned int colorCode() { return 0x0008; }
1639  static constexpr unsigned int timeSlot() { return 0x0009; }
1640  static constexpr unsigned int name() { return 0x000a; }
1642  };
1643  };
1644 
1645 
1648  {
1649  protected:
1651  RoamingChannelBitmapElement(uint8_t *ptr, size_t size);
1652 
1653  public:
1655  RoamingChannelBitmapElement(uint8_t *ptr);
1656 
1658  static constexpr unsigned int size() { return 0x0020; }
1659  };
1660 
1666  {
1667  protected:
1669  RoamingZoneElement(uint8_t *ptr, unsigned size);
1670 
1671  public:
1673  RoamingZoneElement(uint8_t *ptr);
1674 
1676  static constexpr unsigned int size() { return 0x0080; }
1677 
1679  void clear();
1680 
1682  virtual bool hasMember(unsigned n) const;
1684  virtual unsigned member(unsigned n) const;
1686  virtual void setMember(unsigned n, unsigned idx);
1688  virtual void clearMember(unsigned n);
1689 
1691  virtual QString name() const;
1693  virtual void setName(const QString &name);
1694 
1696  virtual bool fromRoamingZone(RoamingZone *zone, Context& ctx, const ErrorStack &err=ErrorStack());
1698  virtual RoamingZone *toRoamingZone(Context& ctx, const ErrorStack &err=ErrorStack()) const;
1700  virtual bool linkRoamingZone(RoamingZone *zone, Context& ctx, const ErrorStack& err=ErrorStack());
1701 
1702  public:
1704  struct Limit {
1705  static constexpr unsigned int nameLength() { return 16; }
1706  static constexpr unsigned int numMembers() { return 64; }
1707  };
1708 
1709  protected:
1711  struct Offset {
1713  static constexpr unsigned int members() { return 0x0000; }
1714  static constexpr unsigned int betweenMembers() { return 0x0001; }
1715  static constexpr unsigned int name() { return 0x0040; }
1717  };
1718  };
1719 
1722  {
1723  protected:
1725  RoamingZoneBitmapElement(uint8_t *ptr, size_t size);
1726 
1727  public:
1729  RoamingZoneBitmapElement(uint8_t *ptr);
1730 
1732  static constexpr unsigned int size() { return 0x0010; }
1733  };
1734 
1740  {
1741  protected:
1743  AESEncryptionKeyElement(uint8_t *ptr, unsigned size);
1744 
1745  public:
1747  AESEncryptionKeyElement(uint8_t *ptr);
1748 
1750  static constexpr unsigned int size() { return 0x0040; }
1751 
1753  void clear();
1754 
1756  bool isValid() const;
1757 
1759  virtual unsigned index() const;
1761  virtual void setIndex(unsigned idx);
1762 
1764  virtual QByteArray key() const;
1766  virtual void setKey(const QByteArray &key);
1767  };
1768 
1771  {
1772  protected:
1774  HiddenZoneBitmapElement(uint8_t *ptr, size_t size);
1775 
1776  public:
1778  HiddenZoneBitmapElement(uint8_t *ptr);
1779 
1781  static constexpr unsigned int size() { return 0x0020; }
1782  };
1783 
1789  {
1790  public:
1793  RX_400_480_136_174_TX_400_480_136_174 = 0,
1794  RX_400_480_136_174_TX_400_480_136_174_STEP_12_5kHz = 1,
1795  RX_430_440_136_174_TX_430_440_136_174 = 2,
1796  RX_400_480_136_174_TX_430_440_144_146 = 3,
1797  RX_440_480_136_174_TX_440_480_136_174 = 4,
1798  RX_440_480_144_146_TX_440_480_144_146 = 5,
1799  RX_446_447_136_174_TX_446_447_136_174 = 6,
1800  RX_400_480_136_174_TX_420_450_136_174 = 7,
1801  RX_400_470_136_174_TX_400_470_136_174 = 8,
1802  RX_430_432_144_146_TX_430_432_144_146 = 9,
1803  RX_400_480_136_174_TX_430_450_144_148 = 10,
1804  RX_400_520_136_174_TX_400_520_136_174 = 11,
1805  RX_400_490_136_174_TX_400_490_136_174 = 12,
1806  RX_400_480_136_174_TX_403_470_136_174 = 13,
1807  RX_400_520_220_225_136_174_TX_400_520_220_225_136_174 = 14,
1808  RX_420_520_144_148_TX_420_520_144_148 = 15,
1809  RX_430_440_144_147_TX_430_440_144_147 = 16,
1810  RX_430_440_136_174_TX_136_174 = 17
1811  };
1812 
1813  protected:
1815  RadioInfoElement(uint8_t *ptr, unsigned size);
1816 
1817  public:
1819  explicit RadioInfoElement(uint8_t *ptr);
1820 
1822  void clear();
1823 
1826  virtual bool fullTest() const;
1827 
1829  virtual FrequencyRange frequencyRange() const;
1831  virtual void setFrequencyRange(FrequencyRange range);
1832 
1834  virtual bool international() const;
1836  virtual void enableInternational(bool enable);
1837 
1839  virtual bool bandSelect() const;
1841  virtual void enableBandSelect(bool enable);
1842 
1844  virtual QString bandSelectPassword() const;
1846  virtual void setBandSelectPassword(const QString &passwd);
1847 
1849  virtual QString radioType() const;
1850 
1852  virtual QString programPassword() const;
1854  virtual void setProgramPassword(const QString &passwd);
1855 
1857  virtual QString areaCode() const;
1859  virtual QString serialNumber() const;
1861  virtual QString productionDate() const;
1863  virtual QString manufacturerCode() const;
1865  virtual QString maintainedDate() const;
1867  virtual QString dealerCode() const;
1869  virtual QString stockDate() const;
1871  virtual QString sellDate() const;
1873  virtual QString seller() const;
1875  virtual QString maintainerNote() const;
1876  };
1877 
1878 protected:
1880  explicit D878UVCodeplug(const QString &label, QObject *parent = nullptr);
1881 
1882 public:
1884  explicit D878UVCodeplug(QObject *parent = nullptr);
1885 
1886 protected:
1887  bool allocateBitmaps();
1888  void setBitmaps(Context &ctx);
1889  void allocateForDecoding();
1890  void allocateUpdated();
1891  void allocateForEncoding();
1892 
1893  bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1894  bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1895 
1896  void allocateChannels();
1897  bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1898  bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1899  bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
1900 
1901  virtual void allocateZones();
1902  virtual bool encodeZone(int i, Zone *zone, bool isB, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1903  virtual bool decodeZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack());
1904 
1905  void allocateGeneralSettings();
1906  bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1907  bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1908  bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack());
1909 
1910  void allocateGPSSystems();
1911  bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1912  bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1913  bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack());
1914 
1916  virtual void allocateRoaming();
1918  virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1920  virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1922  virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack());
1923 
1924 public:
1926  struct Limit: public D868UVCodeplug::Limit {
1927  static constexpr unsigned int analogAPRSRXEntries() { return 32; }
1928  static constexpr unsigned int roamingChannels() { return 250; }
1929  static constexpr unsigned int roamingZones() { return 64; }
1930  static constexpr unsigned int aesKeys() { return 256; }
1931  };
1932 
1933 protected:
1937  static constexpr unsigned int settingsExtension() { return 0x02501400; }
1938  static constexpr unsigned int aprsSettings() { return 0x02501000; }
1939  static constexpr unsigned int analogAPRSMessage() { return 0x02501200; }
1940  static constexpr unsigned int analogAPRSRXEntries() { return 0x02501800; }
1941  static constexpr unsigned int fmAPRSFrequencyNames() { return 0x02502000; }
1942  static constexpr unsigned int hiddenZoneBitmap() { return 0x024c1360; }
1943  static constexpr unsigned int roamingChannelBitmap() { return 0x01042000; }
1944  static constexpr unsigned int roamingChannels() { return 0x01040000; }
1945  static constexpr unsigned int roamingZoneBitmap() { return 0x01042080; }
1946  static constexpr unsigned int roamingZones() { return 0x01043000; }
1947  static constexpr unsigned int aesKeys() { return 0x024C4000; }
1949  };
1950 };
1951 
1952 #endif // D878UVCODEPLUG_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 bitmaps in all AnyTone codeplugs.
Definition: anytone_codeplug.hh:21
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
Color
Possible display colors.
Definition: anytone_extension.hh:974
DateFormat
Possible date formats.
Definition: anytone_extension.hh:987
Language
Possible UI languages.
Definition: anytone_extension.hh:980
Bandwidth
Possible bandwidth settings.
Definition: anytone_extension.hh:2383
GPSMode
Possible GPS modes.
Definition: anytone_extension.hh:1752
KeyFunction
All possible key functions.
Definition: anytone_extension.hh:585
RoamStart
Possible roaming start conditions.
Definition: anytone_extension.hh:1861
STEType
All possible STE (squelch tail eliminate) types.
Definition: anytone_extension.hh:2166
The base class of all channels (analog and digital) of a codeplug configuration.
Definition: channel.hh:34
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 channel element for AnyTone D868UV devices.
Definition: d868uv_codeplug.hh:229
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 an AES encryption key.
Definition: d878uv_codeplug.hh:1740
virtual unsigned index() const
Returns the key index.
Definition: d878uv_codeplug.cc:3193
virtual void setKey(const QByteArray &key)
Sets the key.
Definition: d878uv_codeplug.cc:3208
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1750
AESEncryptionKeyElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:3168
bool isValid() const
Returns true if the key is set.
Definition: d878uv_codeplug.cc:3188
virtual QByteArray key() const
Returns the actual key.
Definition: d878uv_codeplug.cc:3202
virtual void setIndex(unsigned idx)
Sets the key index.
Definition: d878uv_codeplug.cc:3197
void clear()
Resets the key.
Definition: d878uv_codeplug.cc:3181
Represents the APRS settings within the binary D878UV codeplug.
Definition: d878uv_codeplug.hh:1221
virtual Interval dmrPreWaveDelay() const
Returns the the repeater activation delay in ms.
Definition: d878uv_codeplug.cc:2769
virtual bool reportMessage() const
Returns true if the report message flag is set.
Definition: d878uv_codeplug.cc:2833
virtual void setDMRChannelIndex(unsigned n, unsigned idx)
Sets the digital channel index for the n-th system.
Definition: d878uv_codeplug.cc:2700
virtual void enableReportNMEA(bool enable)
Enables/disables report NMEA flag.
Definition: d878uv_codeplug.cc:2855
virtual bool reportWeather() const
Returns true if the report weather flag is set.
Definition: d878uv_codeplug.cc:2842
virtual bool reportPosition() const
Returns true if the report position flag is set.
Definition: d878uv_codeplug.cc:2797
bool isValid() const
Returns true if the pointer is not null.
Definition: d878uv_codeplug.cc:2490
virtual void enableReportMessage(bool enable)
Enables/disables report message flag.
Definition: d878uv_codeplug.cc:2837
virtual void setSource(const QString &call, unsigned ssid)
Sets the source call & SSID.
Definition: d878uv_codeplug.cc:2636
virtual bool reportMicE() const
Returns true if the report Mic-E flag is set.
Definition: d878uv_codeplug.cc:2806
virtual void setFMTXDelay(Interval ms)
Sets the TX delay in ms.
Definition: d878uv_codeplug.cc:2501
virtual Interval fmTXDelay() const
Returns the TX delay in ms.
Definition: d878uv_codeplug.cc:2497
virtual bool reportOther() const
Returns true if the report other flag is set.
Definition: d878uv_codeplug.cc:2869
virtual void setDMRTimeSlot(unsigned n, DMRChannel::TimeSlot ts)
Overrides the time slot of the n-th selected channel.
Definition: d878uv_codeplug.cc:2748
virtual bool dmrChannelIsSelected(unsigned n) const
Returns true if the channel points to the current/selected channel.
Definition: d878uv_codeplug.cc:2692
virtual void setFMPreWaveDelay(Interval ms)
Sets the pre-wave delay in ms.
Definition: d878uv_codeplug.cc:2687
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location send.
Definition: d878uv_codeplug.cc:2567
virtual unsigned sourceSSID() const
Returns the source SSID.
Definition: d878uv_codeplug.cc:2632
virtual bool reportNMEA() const
Returns true if the report NMEA flag is set.
Definition: d878uv_codeplug.cc:2851
SignalingType
Possible settings for the FM APRS subtone type.
Definition: d878uv_codeplug.hh:1227
virtual bool infiniteDisplayTime() const
Returns true if a received APRS message is shown indefinitely.
Definition: d878uv_codeplug.cc:2778
void clear()
Resets the settings.
Definition: d878uv_codeplug.cc:2482
virtual void setManualTXInterval(Interval sec)
Sets the manual TX interval in seconds.
Definition: d878uv_codeplug.cc:2541
virtual void setTXTone(Signaling::Code code)
Sets the sub tone settings.
Definition: d878uv_codeplug.cc:2521
virtual void enableReportWeather(bool enable)
Enables/disables report weather flag.
Definition: d878uv_codeplug.cc:2846
virtual bool fixedLocationEnabled() const
Returns true if a fixed location is sent.
Definition: d878uv_codeplug.cc:2563
virtual void enableReportObject(bool enable)
Enables/disables report object flag.
Definition: d878uv_codeplug.cc:2819
virtual void enableReportPosition(bool enable)
Enables/disables report position flag.
Definition: d878uv_codeplug.cc:2801
virtual Interval autoTXInterval() const
Returns the auto TX interval in seconds.
Definition: d878uv_codeplug.cc:2550
virtual bool reportStatus() const
Returns true if the report status flag is set.
Definition: d878uv_codeplug.cc:2860
virtual void setFMChannelWidth(AnytoneFMAPRSSettingsExtension::Bandwidth width)
Sets the FM APRS channel width.
Definition: d878uv_codeplug.cc:2882
virtual void setDMRChannelSelected(unsigned n)
Sets the channel to the current/selected channel.
Definition: d878uv_codeplug.cc:2704
virtual Channel::Power power() const
Returns the transmit power.
Definition: d878uv_codeplug.cc:2662
virtual QString source() const
Returns the source call.
Definition: d878uv_codeplug.cc:2627
virtual bool linkFMAPRSSystem(APRSSystem *sys, Context &ctx)
Links the transmit channel within the generic APRS system based on the transmit frequency defined wit...
Definition: d878uv_codeplug.cc:3016
virtual void disableFixedLocation()
Disables sending a fixed location.
Definition: d878uv_codeplug.cc:2607
virtual void setIcon(APRSSystem::Icon icon)
Sets the APRS icon.
Definition: d878uv_codeplug.cc:2656
virtual void setFixedLocation(QGeoCoordinate &loc)
Sets the fixed location to send.
Definition: d878uv_codeplug.cc:2582
virtual bool reportItem() const
Returns true if the report item flag is set.
Definition: d878uv_codeplug.cc:2824
virtual APRSSystem::Icon icon() const
Returns the APRS icon.
Definition: d878uv_codeplug.cc:2652
virtual bool fromDMRAPRSSystemObj(unsigned int idx, GPSSystem *sys, Context &ctx)
Encodes the given GPS system.
Definition: d878uv_codeplug.cc:3046
virtual void clearFMFrequency(unsigned int n)
Clears the n-th of 8 FM APRS frequencies.
Definition: d878uv_codeplug.cc:2911
virtual bool dmrTimeSlotOverride(unsigned n)
Returns true if the n-th system overrides the channel time-slot.
Definition: d878uv_codeplug.cc:2736
virtual void clearDMRTimeSlotOverride(unsigned n)
Clears the time-slot override.
Definition: d878uv_codeplug.cc:2755
virtual void setPath(const QString &path)
Sets the path string.
Definition: d878uv_codeplug.cc:2647
virtual void disableAutoTX()
Disables auto tx.
Definition: d878uv_codeplug.cc:2558
virtual void enableFMPassAll(bool enable)
Enables/disables "pass all", that is the CRC check on FM APRS messages is disabled.
Definition: d878uv_codeplug.cc:2891
virtual APRSSystem * toFMAPRSSystem(Context &ctx, const FMAPRSFrequencyNamesElement &names, const ErrorStack &err=ErrorStack())
Constructs a generic APRS system configuration from this APRS system.
Definition: d878uv_codeplug.cc:2972
virtual bool fromFMAPRSSystem(const APRSSystem *sys, Context &ctx, FMAPRSFrequencyNamesElement &names, const ErrorStack &err=ErrorStack())
Configures this APRS system from the given generic config.
Definition: d878uv_codeplug.cc:2917
virtual QString destination() const
Returns the destination call.
Definition: d878uv_codeplug.cc:2612
virtual bool autoTX() const
Returns true if the auto transmit is enabled.
Definition: d878uv_codeplug.cc:2546
virtual Interval manualTXInterval() const
Returns the manual TX interval in seconds.
Definition: d878uv_codeplug.cc:2537
APRSSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:2469
virtual bool fmFrequencySet(unsigned int n) const
Retruns true if the n-th of 8 FM APRS frequencies is set.
Definition: d878uv_codeplug.cc:2896
virtual void enableDMRRoaming(bool enable)
Enables/disables roaming.
Definition: d878uv_codeplug.cc:2764
virtual Interval displayTime() const
Returns the time, a received APRS message is shown.
Definition: d878uv_codeplug.cc:2782
virtual DMRChannel::TimeSlot dmrTimeSlot(unsigned n) const
Returns the time slot if overridden (only valid if timeSlot returns true).
Definition: d878uv_codeplug.cc:2740
virtual void enableReportOther(bool enable)
Enables/disables report other flag.
Definition: d878uv_codeplug.cc:2873
virtual void setDisplayTimeInifinite()
Sets the APRS display time to infinite.
Definition: d878uv_codeplug.cc:2792
virtual Interval fmPreWaveDelay() const
Returns the pre-wave delay in ms.
Definition: d878uv_codeplug.cc:2683
virtual Frequency fmFrequency(unsigned int n) const
Returns the n-th of 8 FM APRS frequencies.
Definition: d878uv_codeplug.cc:2901
virtual void setPower(Channel::Power power)
Sets the transmit power.
Definition: d878uv_codeplug.cc:2672
virtual void setAutoTXInterval(Interval sec)
Sets the auto TX interval in seconds.
Definition: d878uv_codeplug.cc:2554
virtual bool dmrRoaming() const
Returns true if the roaming is enabled.
Definition: d878uv_codeplug.cc:2760
virtual Signaling::Code txTone() const
Returns the sub tone settings.
Definition: d878uv_codeplug.cc:2506
virtual void setDMRCallType(unsigned n, DMRContact::Type type)
Sets the call type for the n-th system.
Definition: d878uv_codeplug.cc:2727
virtual void setDMRDestination(unsigned n, unsigned idx)
Sets the destination contact for the n-th system.
Definition: d878uv_codeplug.cc:2713
virtual bool reportObject() const
Returns true if the report object flag is set.
Definition: d878uv_codeplug.cc:2815
virtual GPSSystem * toDMRAPRSSystemObj(int idx) const
Constructs a generic GPS system from the idx-th encoded GPS system.
Definition: d878uv_codeplug.cc:3061
virtual void enableReportItem(bool enable)
Enables/disables report item flag.
Definition: d878uv_codeplug.cc:2828
virtual unsigned dmrDestination(unsigned n) const
Returns the destination contact for the n-th system.
Definition: d878uv_codeplug.cc:2709
virtual bool linkDMRAPRSSystem(int idx, GPSSystem *sys, Context &ctx) const
Links the specified generic GPS system.
Definition: d878uv_codeplug.cc:3068
virtual bool fmPassAll() const
Retruns true if the CRC check on received FM APRS messages is disabled.
Definition: d878uv_codeplug.cc:2887
virtual void setDMRPreWaveDelay(Interval ms)
Sets the repeater activation delay in ms.
Definition: d878uv_codeplug.cc:2773
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1236
virtual QString path() const
Returns the path string.
Definition: d878uv_codeplug.cc:2643
virtual AnytoneFMAPRSSettingsExtension::Bandwidth fmChannelWidth() const
Returns the FM APRS channel width.
Definition: d878uv_codeplug.cc:2878
virtual void setDisplayTime(Interval dur)
Sets the time, a received APRS is shown.
Definition: d878uv_codeplug.cc:2786
virtual void setDestination(const QString &call, unsigned ssid)
Sets the destination call & SSID.
Definition: d878uv_codeplug.cc:2621
virtual unsigned destinationSSID() const
Returns the destination SSID.
Definition: d878uv_codeplug.cc:2617
virtual void setFMFrequency(unsigned int n, Frequency f)
Sets the n-th of 8 FM APRS frequencies.
Definition: d878uv_codeplug.cc:2906
virtual void enableReportStatus(bool enable)
Enables/disables report status flag.
Definition: d878uv_codeplug.cc:2864
virtual void enableReportMicE(bool enable)
Enables/disables report Mic-E flag.
Definition: d878uv_codeplug.cc:2810
virtual bool fromDMRAPRSSystems(Context &ctx)
Constructs all GPS system from the generic configuration.
Definition: d878uv_codeplug.cc:3038
virtual DMRContact::Type dmrCallType(unsigned n) const
Returns the call type for the n-th system.
Definition: d878uv_codeplug.cc:2718
virtual unsigned dmrChannelIndex(unsigned n) const
Returns the digital channel index for the n-th system.
Definition: d878uv_codeplug.cc:2696
Represents an (analog/FM) APRS message.
Definition: d878uv_codeplug.hh:1505
virtual QString message() const
Returns the message.
Definition: d878uv_codeplug.cc:3114
AnalogAPRSMessageElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: d878uv_codeplug.cc:3096
void clear()
Abstract method to reset the element within the codeplug.
Definition: d878uv_codeplug.cc:3109
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1515
virtual void setMessage(const QString &msg)
Sets the message.
Definition: d878uv_codeplug.cc:3119
Represents an analog APRS RX entry.
Definition: d878uv_codeplug.hh:1536
virtual void setCall(const QString &call, unsigned ssid)
Sets the call, SSID and enables the entry.
Definition: d878uv_codeplug.cc:3158
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1546
AnalogAPRSRXEntryElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:3127
bool isValid() const
Returns true if the APRS RX entry is valid.
Definition: d878uv_codeplug.cc:3145
virtual unsigned ssid() const
Returns the SSID.
Definition: d878uv_codeplug.cc:3154
void clear()
Resets the entry.
Definition: d878uv_codeplug.cc:3140
virtual QString call() const
Returns the call sign.
Definition: d878uv_codeplug.cc:3150
Represents the actual channel encoded within the binary D878UV codeplug.
Definition: d878uv_codeplug.hh:274
APRSPTT
Defines all possible APRS PTT settings.
Definition: d878uv_codeplug.hh:285
@ End
Send APRS at end of transmission.
@ Start
Send APRS at start of transmission.
virtual int frequenyCorrection() const
Returns the frequency correction in ???.
Definition: d878uv_codeplug.cc:179
virtual void enableRoaming(bool enable)
Enables/disables roaming.
Definition: d878uv_codeplug.cc:119
virtual void setFrequencyCorrection(int corr)
Sets the frequency correction in ???.
Definition: d878uv_codeplug.cc:183
void enableTXDigitalAPRS(bool enable)
Enables/disables digital APRS transmission.
Definition: d878uv_codeplug.cc:139
virtual void enableTXAnalogAPRS(bool enable)
Enables/disables analog APRS reporting.
Definition: d878uv_codeplug.cc:147
Channel * toChannelObj(Context &ctx) const
Constructs a Channel object from this element.
Definition: d878uv_codeplug.cc:198
virtual void setPTTIDSetting(PTTId ptt)
Sets the PTT ID setting.
Definition: d878uv_codeplug.cc:109
ChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:86
virtual void setDigitalAPRSSystemIndex(unsigned idx)
Sets the DMR APRS system index.
Definition: d878uv_codeplug.cc:174
virtual void setAnalogAPRSPTTSetting(APRSPTT ptt)
Sets the analog APRS PTT setting.
Definition: d878uv_codeplug.cc:156
virtual PTTId pttIDSetting() const
Returns the PTT ID settings.
Definition: d878uv_codeplug.cc:105
virtual bool roamingEnabled() const
Returns true if roaming is enabled.
Definition: d878uv_codeplug.cc:114
void clear()
Resets the channel.
Definition: d878uv_codeplug.cc:99
bool dataACK() const
Returns true if the data ACK is enabled.
Definition: d878uv_codeplug.cc:124
virtual unsigned digitalAPRSSystemIndex() const
Returns the DMR APRS system index.
Definition: d878uv_codeplug.cc:170
virtual void setDigitalAPRSPTTSetting(APRSPTT ptt)
Sets the digital APRS PTT setting.
Definition: d878uv_codeplug.cc:165
bool txDigitalAPRS() const
Returns true if digital APRS transmission is enabled.
Definition: d878uv_codeplug.cc:135
virtual APRSPTT digitalAPRSPTTSetting() const
Returns the digital APRS PTT setting.
Definition: d878uv_codeplug.cc:161
bool fromChannelObj(const Channel *c, Context &ctx)
Encodes the given channel object.
Definition: d878uv_codeplug.cc:263
virtual unsigned int fmAPRSFrequencyIndex() const
Returns the index of the FM APRS frequency [0,7].
Definition: d878uv_codeplug.cc:188
virtual APRSPTT analogAPRSPTTSetting() const
Returns the analog APRS PTT setting.
Definition: d878uv_codeplug.cc:152
PTTId
Possible PTT ID settings.
Definition: d878uv_codeplug.hh:277
@ Both
Send PTT-ID at start and end.
virtual bool txAnalogAPRS() const
Returns true if the analog APRS reporting (TX) is enabled.
Definition: d878uv_codeplug.cc:143
bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously created channel object.
Definition: d878uv_codeplug.cc:221
void enableDataACK(bool enable)
Enables/disables data ACK.
Definition: d878uv_codeplug.cc:129
virtual void setFMAPRSFrequencyIndex(unsigned int idx)
Sets the FM APRS frequency index [0,7].
Definition: d878uv_codeplug.cc:192
General settings extension element for the D878UV.
Definition: d878uv_codeplug.hh:951
virtual bool totNotification() const
Returns true if the transmit timeout notification is enabled.
Definition: d878uv_codeplug.cc:2138
static constexpr unsigned int size()
Returns the size of the element.
Definition: d878uv_codeplug.hh:961
virtual bool infiniteManDialPrivateCallHangTime() const
Returns true if the manual dialed private call hang time is infinite.
Definition: d878uv_codeplug.cc:2093
virtual void enableShowChannelType(bool enable)
Enables/disables display of channel type.
Definition: d878uv_codeplug.cc:2202
virtual void clearAutoRepeaterUHF2OffsetIndex()
Clears the auto repeater UHF 2 offset frequency index.
Definition: d878uv_codeplug.cc:1992
virtual void setAutoRepeaterUHF2OffsetIndex(unsigned idx)
Sets the index of the UHF 2 offset frequency.
Definition: d878uv_codeplug.cc:1988
void enableSendTalkerAlias(bool enable)
Enables/disables sending the talker alias.
Definition: d878uv_codeplug.cc:1930
virtual void setBluetoothPTTSleepDelay(Interval delay)
Sets the bluetooth PTT sleep delay in minutes.
Definition: d878uv_codeplug.cc:1970
virtual void setManDialGroupCallHangTimeInfinite()
Sets the manual dial group call hang time to infinite.
Definition: d878uv_codeplug.cc:2088
virtual bool hasAutoRepeaterVHF2OffsetIndex() const
Returns true if the auto repeater VHF 2 offset index is set.
Definition: d878uv_codeplug.cc:1997
virtual void setGPSMode(AnytoneGPSSettingsExtension::GPSMode mode)
Sets the GPS mode.
Definition: d878uv_codeplug.cc:2051
virtual void enableTOTNotification(bool enable)
Enables/disables transmit timeout notification.
Definition: d878uv_codeplug.cc:2142
virtual bool fromConfig(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the settings from the config.
Definition: d878uv_codeplug.cc:2284
void clear()
Resets the settings.
Definition: d878uv_codeplug.cc:1919
virtual Frequency autoRepeaterUHF2MinFrequency() const
Returns the minimum frequency in Hz for the auto-repeater UHF 2 band.
Definition: d878uv_codeplug.cc:2030
virtual bool resetAutoShutdownOnCall() const
Returns true if the auto-shutdown timer is reset on a call.
Definition: d878uv_codeplug.cc:2173
AnytoneDisplaySettingsExtension::Color zoneBNameColor() const
Returns the color of the zone name for VFO B.
Definition: d878uv_codeplug.cc:2164
virtual void setFMMicGain(unsigned int gain)
Sets the analog mic gain [1,10].
Definition: d878uv_codeplug.cc:2229
virtual void clearAutoRepeaterVHF2OffsetIndex()
Clears the auto repeater VHF 2 offset frequency index.
Definition: d878uv_codeplug.cc:2009
virtual bool infiniteManDialGroupCallHangTime() const
Returns true if the manual dialed group call hang time is infinite.
Definition: d878uv_codeplug.cc:2066
void setTalkerAliasSource(AnytoneDMRSettingsExtension::TalkerAliasSource mode)
Sets the talker alias source.
Definition: d878uv_codeplug.cc:1939
virtual void setAutoRepeaterVHF2MinFrequency(Frequency hz)
Sets the minimum frequency in Hz for the auto-repeater VHF 2 band.
Definition: d878uv_codeplug.cc:2018
virtual void setCallEndToneMelody(const Melody &melody)
Sets the call-end tone melody.
Definition: d878uv_codeplug.cc:2254
virtual Interval manDialGroupCallHangTime() const
Returns the manual dial group call hang time.
Definition: d878uv_codeplug.cc:2070
virtual void setEncryption(AnytoneDMRSettingsExtension::EncryptionType mode)
Sets the encryption mode.
Definition: d878uv_codeplug.cc:2133
virtual void setDateFormat(AnytoneDisplaySettingsExtension::DateFormat format)
Sets the date format.
Definition: d878uv_codeplug.cc:2220
virtual bool showColorCode() const
Returns true if the color code is shown.
Definition: d878uv_codeplug.cc:2182
virtual void enableResetAutoShutdownOnCall(bool enable)
Enables/disables reset on call of the auto-shutdown timer.
Definition: d878uv_codeplug.cc:2177
virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Update config from settings.
Definition: d878uv_codeplug.cc:2365
virtual void enableFMIdleTone(bool enable)
Enables/disables FM idle channel tone.
Definition: d878uv_codeplug.cc:2211
virtual bool gpsRoaming() const
Returns true if the GPS roaming is enabled.
Definition: d878uv_codeplug.cc:2235
AnytoneDisplaySettingsExtension::Color channelBNameColor() const
Returns the color of the channel name for VFO B.
Definition: d878uv_codeplug.cc:2120
virtual bool fmIdleTone() const
Returns true if the FM idle channel tone is enabled.
Definition: d878uv_codeplug.cc:2207
virtual void setAutoRepeaterVHF2MaxFrequency(Frequency hz)
Sets the maximum frequency in Hz for the auto-repeater VHF 2 band.
Definition: d878uv_codeplug.cc:2026
virtual void setManDialPrivateCallHangTime(Interval dur)
Sets the manual dial private call hang time.
Definition: d878uv_codeplug.cc:2106
AnytoneDMRSettingsExtension::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias encoding.
Definition: d878uv_codeplug.cc:1944
virtual Frequency autoRepeaterUHF2MaxFrequency() const
Returns the maximum frequency in Hz for the auto-repeater UHF 2 band.
Definition: d878uv_codeplug.cc:2038
virtual void enableATPC(bool enable)
Enables/disables the ATPC (Adaptiv Transmission Power Control).
Definition: d878uv_codeplug.cc:2151
virtual void enableGPSRoaming(bool enable)
Enables/disables GPS roaming.
Definition: d878uv_codeplug.cc:2239
bool sendTalkerAlias() const
Returns true if the talker alias is sent.
Definition: d878uv_codeplug.cc:1926
virtual bool showTimeSlot() const
Returns true if the time slot is shown.
Definition: d878uv_codeplug.cc:2190
virtual bool atpc() const
Returns true if the ATPC (Adaptiv Transmission Power Control) is enabled.
Definition: d878uv_codeplug.cc:2147
virtual unsigned autoRepeaterUHF2OffsetIndex() const
Returns the index of the UHF 2 offset frequency.
Definition: d878uv_codeplug.cc:1984
virtual Interval steDuration() const
Returns the STE (squelch tail elimination) duration.
Definition: d878uv_codeplug.cc:2056
AnytoneDMRSettingsExtension::TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition: d878uv_codeplug.cc:1935
virtual unsigned int fmMicGain() const
Returns the FM Mic gain [1,10].
Definition: d878uv_codeplug.cc:2225
virtual void setAutoRepeaterVHF2OffsetIndex(unsigned idx)
Sets the index of the VHF 2 offset frequency.
Definition: d878uv_codeplug.cc:2005
virtual void setAutoRepeaterUHF2MaxFrequency(Frequency hz)
Sets the maximum frequency in Hz for the auto-repeater UHF 2 band.
Definition: d878uv_codeplug.cc:2042
virtual void setManDialGroupCallHangTime(Interval dur)
Sets the manual dial group call hang time.
Definition: d878uv_codeplug.cc:2079
virtual void enableBluetoothPTTLatch(bool enable)
Enables/disables bluetooth PTT latch.
Definition: d878uv_codeplug.cc:1957
void setChannelBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the channel name color for the VFO B.
Definition: d878uv_codeplug.cc:2124
virtual void enableShowTimeSlot(bool enable)
Enables/disables display of time slot.
Definition: d878uv_codeplug.cc:2194
virtual void setInfiniteBluetoothPTTSleepDelay()
Sets the bluetooth PTT sleep delay to infinite/disabled.
Definition: d878uv_codeplug.cc:1975
virtual AnytoneGPSSettingsExtension::GPSMode gpsMode() const
Returns the GPS mode.
Definition: d878uv_codeplug.cc:2047
void setZoneANameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO A.
Definition: d878uv_codeplug.cc:2160
virtual void enableShowColorCode(bool enable)
Enables/disables display of color code.
Definition: d878uv_codeplug.cc:2186
AnytoneDisplaySettingsExtension::Color zoneANameColor() const
Returns the color of the zone name for VFO A.
Definition: d878uv_codeplug.cc:2156
virtual Interval manDialPrivateCallHangTime() const
Returns the manual dial private call hang time.
Definition: d878uv_codeplug.cc:2097
virtual void setSTEDuration(Interval dur)
Sets the STE (squelch tail elimination) duration.
Definition: d878uv_codeplug.cc:2060
virtual void callEndToneMelody(Melody &melody) const
Returns the call-end tone melody.
Definition: d878uv_codeplug.cc:2244
virtual void setAllCallToneMelody(const Melody &melody)
Sets the all-call tone melody.
Definition: d878uv_codeplug.cc:2274
virtual void allCallToneMelody(Melody &melody) const
Returns the all-call tone melody.
Definition: d878uv_codeplug.cc:2264
ExtendedSettingsElement(uint8_t *ptr, unsigned size)
Hidden Constructor.
Definition: d878uv_codeplug.cc:1906
virtual AnytoneDMRSettingsExtension::EncryptionType encryption() const
Returns the encryption mode.
Definition: d878uv_codeplug.cc:2129
virtual bool bluetoothPTTLatch() const
Returns true if the BT PTT latch is enabled.
Definition: d878uv_codeplug.cc:1953
virtual unsigned autoRepeaterVHF2OffsetIndex() const
Returns the index of the VHF 2 offset frequency.
Definition: d878uv_codeplug.cc:2001
virtual Frequency autoRepeaterVHF2MinFrequency() const
Returns the minimum frequency in Hz for the auto-repeater VHF 2 band.
Definition: d878uv_codeplug.cc:2014
virtual bool linkConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Link config from settings extension.
Definition: d878uv_codeplug.cc:2427
virtual Frequency autoRepeaterVHF2MaxFrequency() const
Returns the maximum frequency in Hz for the auto-repeater VHF 2 band.
Definition: d878uv_codeplug.cc:2022
virtual bool showChannelType() const
Returns true if the channel type is shown.
Definition: d878uv_codeplug.cc:2198
void setTalkerAliasEncoding(AnytoneDMRSettingsExtension::TalkerAliasEncoding encoding)
Sets the talker alias encoding.
Definition: d878uv_codeplug.cc:1948
virtual void setAutoRepeaterUHF2MinFrequency(Frequency hz)
Sets the minimum frequency in Hz for the auto-repeater UHF 2 band.
Definition: d878uv_codeplug.cc:2034
virtual Interval bluetoothPTTSleepDelay() const
Returns the bluetooth PTT sleep delay in minutes, 0=off.
Definition: d878uv_codeplug.cc:1966
virtual bool hasAutoRepeaterUHF2OffsetIndex() const
Returns true if the auto repeater UHF 2 offset index is set.
Definition: d878uv_codeplug.cc:1980
virtual AnytoneDisplaySettingsExtension::DateFormat dateFormat() const
Returns the date format.
Definition: d878uv_codeplug.cc:2216
virtual bool infiniteBluetoothPTTSleepDelay() const
Returns true if the bluetooth PTT sleep delay is disabled (infinite).
Definition: d878uv_codeplug.cc:1962
virtual void setManDialPrivateCallHangTimeInfinite()
Sets the manual dial private call hang time to infinite.
Definition: d878uv_codeplug.cc:2115
void setZoneBNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the zone name color for the VFO B.
Definition: d878uv_codeplug.cc:2168
Implements some storage to hold the names for the FM APRS frequencies.
Definition: d878uv_codeplug.hh:1180
FMAPRSFrequencyNamesElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: d878uv_codeplug.cc:319
virtual void setName(unsigned int n, const QString &name)
Sets the n-th name.
Definition: d878uv_codeplug.cc:343
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1190
virtual QString name(unsigned int n) const
Returns the n-th name.
Definition: d878uv_codeplug.cc:337
void clear()
Abstract method to reset the element within the codeplug.
Definition: d878uv_codeplug.cc:332
Represents the general config of the radio within the D878UV binary codeplug.
Definition: d878uv_codeplug.hh:382
virtual bool monitorColorCodeMatch() const
Returns true if the monitor matches color code.
Definition: d878uv_codeplug.cc:1090
virtual void disableBTHoldTime()
Sets the bluethooth hold time to infinite.
Definition: d878uv_codeplug.cc:1654
void setDefaultZoneIndexA(unsigned idx)
Sets the default zone (0-based) for VFO A.
Definition: d878uv_codeplug.cc:1440
virtual unsigned priorityZoneBIndex() const
Returns the priority Zone B index.
Definition: d878uv_codeplug.cc:1161
void enableShowLastHeard(bool enable)
Enables/disables showing last heard.
Definition: d878uv_codeplug.cc:1361
virtual void setSTEType(AnytoneSettingsExtension::STEType type)
Sets the STE (squelch tail eliminate) type.
Definition: d878uv_codeplug.cc:902
virtual Interval privateCallHangTime() const
Returns the private call hang time in seconds.
Definition: d878uv_codeplug.cc:934
virtual bool remoteStunKill() const
Returns true remote stun/kill is enabled.
Definition: d878uv_codeplug.cc:1063
virtual bool bluetooth() const
Returns true if bluetooth is enabled.
Definition: d878uv_codeplug.cc:1170
void setFuncKeyAShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1/A.
Definition: d878uv_codeplug.cc:812
virtual void enablePluginRecTone(bool enable)
Enables/disables the plug-in record tone.
Definition: d878uv_codeplug.cc:1201
virtual bool btHoldTimeEnabled() const
Returns true, if the bluetooth hold time is enabled.
Definition: d878uv_codeplug.cc:1633
TBSTFrequency
TBST (open repeater) frequencies.
Definition: d878uv_codeplug.hh:441
virtual bool bootReset() const
Returns true if boot reset is enabled.
Definition: d878uv_codeplug.cc:1624
bool defaultChannelAIsVFO() const
Returns true if the default channel for VFO A is VFO.
Definition: d878uv_codeplug.cc:1454
DTMFDuration
DTMF signalling durations.
Definition: d878uv_codeplug.hh:436
virtual void setSTEFrequency(double freq)
Sets the STE (squelch tail eliminate) frequency setting.
Definition: d878uv_codeplug.cc:915
virtual bool remoteMonitor() const
Returns true remote monitor is enabled.
Definition: d878uv_codeplug.cc:1072
bool fromConfig(const Flags &flags, Context &ctx)
Encodes the general settings.
Definition: d878uv_codeplug.cc:1675
virtual void setDTMFToneDuration(unsigned ms)
Sets the DTMF tone duration in ms.
Definition: d878uv_codeplug.cc:987
virtual void setLanguage(AnytoneDisplaySettingsExtension::Language lang)
Sets the UI language.
Definition: d878uv_codeplug.cc:769
virtual void setBTMicGain(unsigned int gain)
Sets the bluetooth microphone gain [1,10].
Definition: d878uv_codeplug.cc:1219
bool keyLockForced() const
Returns true if the "professional" key is locked.
Definition: d878uv_codeplug.cc:1321
virtual Frequency autoRepeaterMaxFrequencyUHF() const
Returns the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: d878uv_codeplug.cc:1400
void setDefaultChannelBIndex(unsigned idx)
Sets the default channel index for VFO B.
Definition: d878uv_codeplug.cc:1479
virtual bool gpsMessageEnabled() const
Returns true if the GPS range reporting is enabled.
Definition: d878uv_codeplug.cc:1135
unsigned defaultChannelAIndex() const
Returns the default channel index for VFO A.
Definition: d878uv_codeplug.cc:1458
virtual bool roaming() const
Returns true if roaming is enabled.
Definition: d878uv_codeplug.cc:1588
virtual bool proMode() const
Returns true if the "pro mode" is enabled.
Definition: d878uv_codeplug.cc:1045
bool showLastHeard() const
Returns true if the last heard is shown while pressing PTT.
Definition: d878uv_codeplug.cc:1357
bool gpsUnitsImperial() const
Returns true if the GPS units are imperial.
Definition: d878uv_codeplug.cc:1288
virtual void setDefaultRoamingZoneIndex(unsigned idx)
Sets the default roaming zone index.
Definition: d878uv_codeplug.cc:1492
virtual void enableProMode(bool enable)
Enables/disables the "pro mode".
Definition: d878uv_codeplug.cc:1049
void enableGPSUnitsImperial(bool enable)
Enables/disables imperial GPS units.
Definition: d878uv_codeplug.cc:1292
AnytoneKeySettingsExtension::KeyFunction funcKey2Short() const
Returns the key function for a short press on the function key 2.
Definition: d878uv_codeplug.cc:844
virtual AnytoneRoamingSettingsExtension::RoamStart roamingStartCondition() const
Returns the roaming start condition.
Definition: d878uv_codeplug.cc:1524
bool showCurrentContact() const
Returns true if the current contact is shown.
Definition: d878uv_codeplug.cc:1244
void setFuncKeyCShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 3/C.
Definition: d878uv_codeplug.cc:830
virtual bool fmSendIDAndContact() const
If enabled, the FM ID is sent together with selected contact.
Definition: d878uv_codeplug.cc:1418
virtual void setAutoRepeaterDirectionB(AnytoneAutoRepeaterSettingsExtension::Direction dir)
Sets the auto-repeater direction for VFO B.
Definition: d878uv_codeplug.cc:1413
bool keypadLock() const
Returns true if the keypad is locked.
Definition: d878uv_codeplug.cc:1305
void enableKnobLock(bool enable)
Enables/disables the knob lock.
Definition: d878uv_codeplug.cc:1301
virtual Interval btRXDelay() const
Returns the bluetooth RX delay in ms.
Definition: d878uv_codeplug.cc:1659
virtual unsigned priorityZoneAIndex() const
Returns the priority Zone A index.
Definition: d878uv_codeplug.cc:1153
virtual void setRepeaterRangeCheckInterval(Interval sec)
Sets the repeater range check interval in seconds.
Definition: d878uv_codeplug.cc:1510
virtual void setAutoRepeaterMinFrequencyUHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: d878uv_codeplug.cc:1396
virtual bool monitorTimeSlotHold() const
Returns true if the monitor holds the time slot.
Definition: d878uv_codeplug.cc:1108
virtual void setPrivateCallHangTime(Interval sec)
Sets the private call hang time in seconds.
Definition: d878uv_codeplug.cc:938
BackgroundImage
Possible background images.
Definition: d878uv_codeplug.hh:451
void setFuncKeyBShort(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2/B.
Definition: d878uv_codeplug.cc:821
void setDefaultZoneIndexB(unsigned idx)
Sets the default zone (0-based) for VFO B.
Definition: d878uv_codeplug.cc:1449
bool defaultChannel() const
Returns true if the default boot channel is enabled.
Definition: d878uv_codeplug.cc:1427
virtual Interval gpsUpdatePeriod() const
Returns the GPS ranging interval in seconds.
Definition: d878uv_codeplug.cc:1206
virtual Interval groupCallHangTime() const
Returns the group call hang time in seconds.
Definition: d878uv_codeplug.cc:926
virtual bool monitorIDMatch() const
Returns true if the monitor matches ID.
Definition: d878uv_codeplug.cc:1099
virtual bool wfmVFOEnabled() const
Returns true if the WFM RX is in VFO mode.
Definition: d878uv_codeplug.cc:967
virtual void enableBootGPSCheck(bool enable)
Enables/disables boot GPS check.
Definition: d878uv_codeplug.cc:1619
FreqStep
Possible VFO frequency steps.
Definition: d878uv_codeplug.hh:424
@ FREQ_STEP_20kHz
20kHz
Definition: d878uv_codeplug.hh:430
@ FREQ_STEP_2_5kHz
2.5kHz
Definition: d878uv_codeplug.hh:425
@ FREQ_STEP_50kHz
50kHz
Definition: d878uv_codeplug.hh:432
@ FREQ_STEP_10kHz
10kHz
Definition: d878uv_codeplug.hh:428
@ FREQ_STEP_6_25kHz
6.25kHz
Definition: d878uv_codeplug.hh:427
@ FREQ_STEP_5kHz
5kHz
Definition: d878uv_codeplug.hh:426
@ FREQ_STEP_12_5kHz
12.5kHz
Definition: d878uv_codeplug.hh:429
@ FREQ_STEP_25kHz
25kHz
Definition: d878uv_codeplug.hh:431
unsigned defaultZoneIndexB() const
Returns the default zone index (0-based) for VFO B.
Definition: d878uv_codeplug.cc:1445
virtual bool repeaterRangeCheck() const
Returns true if repeater range check is enabled.
Definition: d878uv_codeplug.cc:1497
void setFuncKeyBLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: d878uv_codeplug.cc:866
virtual void enableBTAndInternalMic(bool enable)
Enables/disables the internal mic when BT is active.
Definition: d878uv_codeplug.cc:1183
virtual void setBTHoldTime(Interval interval)
Sets the bluethooth hold time (1-120s).
Definition: d878uv_codeplug.cc:1645
virtual void setWakeHeadPeriod(Interval ms)
Sets the wake head-period in ms.
Definition: d878uv_codeplug.cc:954
virtual bool filterOwnID() const
Returns true if the own ID is filtered in call lists.
Definition: d878uv_codeplug.cc:1054
AnytoneKeySettingsExtension::KeyFunction funcKeyBShort() const
Returns the key function for a short press on the function key 2/B.
Definition: d878uv_codeplug.cc:817
AnytoneKeySettingsExtension::KeyFunction funcKey1Short() const
Returns the key function for a short press on the function key 1.
Definition: d878uv_codeplug.cc:835
bool knobLock() const
Returns true if the knob is locked.
Definition: d878uv_codeplug.cc:1297
void setKeyToneLevelAdjustable()
Sets the key-tone level adjustable.
Definition: d878uv_codeplug.cc:1274
virtual Frequency autoRepeaterMinFrequencyUHF() const
Returns the minimum frequency in Hz for the auto-repeater range in UHF band.
Definition: d878uv_codeplug.cc:1392
void enableShowCurrentContact(bool enable)
Enables/disables display of current contact.
Definition: d878uv_codeplug.cc:1248
virtual void setPriorityZoneAIndex(unsigned idx)
Sets the priority zone A index.
Definition: d878uv_codeplug.cc:1157
virtual void enableRemoteStunKill(bool enable)
Enables/disables remote stun/kill.
Definition: d878uv_codeplug.cc:1067
bool linkSettings(RadioSettings *settings, Context &ctx, const ErrorStack &err)
Links the general settings.
Definition: d878uv_codeplug.cc:1872
virtual void setStandbyTextColor(AnytoneDisplaySettingsExtension::Color color)
Sets the standby text color.
Definition: d878uv_codeplug.cc:1343
virtual void enableBluetooth(bool enable)
Enables/disables bluetooth.
Definition: d878uv_codeplug.cc:1174
Interval rxBacklightDuration() const
Returns the backlight duration during RX in seconds.
Definition: d878uv_codeplug.cc:1579
virtual void enableRoaming(bool enable)
Enables/disables repeater check notification.
Definition: d878uv_codeplug.cc:1592
void setFuncKey2Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 2.
Definition: d878uv_codeplug.cc:848
virtual void enableManDown(bool enable)
Enables/disables "man down".
Definition: d878uv_codeplug.cc:1006
virtual void setChannelNameColor(AnytoneDisplaySettingsExtension::Color color)
Sets the channel name color.
Definition: d878uv_codeplug.cc:1564
bool sidekeysLock() const
Returns true if the sidekeys are locked.
Definition: d878uv_codeplug.cc:1313
virtual bool btHoldTimeInfinite() const
Returns true, if the bluetooth hold time is infinite.
Definition: d878uv_codeplug.cc:1637
void setGPSTimeZone(const QTimeZone &zone)
Sets the GPS time zone.
Definition: d878uv_codeplug.cc:751
bool keepLastCaller() const
Returns true if the last caller is kept when changing channel.
Definition: d878uv_codeplug.cc:1551
virtual bool manDown() const
Returns true if "man down" is enabled.
Definition: d878uv_codeplug.cc:1002
virtual unsigned int btSpeakerGain() const
Returns the bluetooth speaker gain [1,10].
Definition: d878uv_codeplug.cc:1225
virtual void enableSeparateDisplay(bool enable)
Enables/disables "separate display.
Definition: d878uv_codeplug.cc:1546
virtual void setBTHoldTimeInfinite()
Sets the bluethooth hold time to infinite.
Definition: d878uv_codeplug.cc:1650
virtual void setPriorityZoneBIndex(unsigned idx)
Sets the priority zone B index.
Definition: d878uv_codeplug.cc:1165
virtual unsigned fmCallHold() const
Returns the analog call hold in seconds.
Definition: d878uv_codeplug.cc:1126
virtual unsigned defaultRoamingZoneIndex() const
Returns the default roaming zone index.
Definition: d878uv_codeplug.cc:1488
virtual unsigned dtmfToneDuration() const
Returns the DTMF tone duration in ms.
Definition: d878uv_codeplug.cc:976
virtual void enableDisplayChannelNumber(bool enable)
Enables/disables display of channel number.
Definition: d878uv_codeplug.cc:1239
virtual AnytoneDMRSettingsExtension::SlotMatch monitorSlotMatch() const
Returns the monitor slot match.
Definition: d878uv_codeplug.cc:1081
virtual AnytoneDisplaySettingsExtension::Language language() const
Returns the UI language.
Definition: d878uv_codeplug.cc:765
AnytoneKeySettingsExtension::KeyFunction funcKeyAShort() const
Returns the key function for a short press on the function key 1/A.
Definition: d878uv_codeplug.cc:808
void setDefaultChannelAIndex(unsigned idx)
Sets the default channel index for VFO A.
Definition: d878uv_codeplug.cc:1462
void setDefaultChannelBToVFO()
Sets the default channel for VFO B to be VFO.
Definition: d878uv_codeplug.cc:1483
virtual bool displayChannelNumber() const
Returns true if the channel number is displayed.
Definition: d878uv_codeplug.cc:1235
virtual AnytoneAutoRepeaterSettingsExtension::Direction autoRepeaterDirectionB() const
Returns the auto-repeater direction for VFO B.
Definition: d878uv_codeplug.cc:1409
bool keyToneLevelAdjustable() const
Returns true if the key-tone level is adjustable.
Definition: d878uv_codeplug.cc:1262
virtual Interval manDownDelay() const
Returns the "man down" delay in seconds.
Definition: d878uv_codeplug.cc:1117
virtual AnytoneDisplaySettingsExtension::Color channelNameColor() const
Returns the channel name color.
Definition: d878uv_codeplug.cc:1560
virtual void setGroupCallHangTime(Interval sec)
Sets the group call hang time in seconds.
Definition: d878uv_codeplug.cc:930
virtual void setPreWaveDelay(Interval ms)
Sets the pre-wave time in ms.
Definition: d878uv_codeplug.cc:946
virtual void setStandbyBackgroundImage(D878UVCodeplug::GeneralSettingsElement::BackgroundImage img)
Sets the standby background image.
Definition: d878uv_codeplug.cc:1352
virtual void setMonitorSlotMatch(AnytoneDMRSettingsExtension::SlotMatch match)
Sets the monitor slot match.
Definition: d878uv_codeplug.cc:1085
void setFuncKeyCLong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 3.
Definition: d878uv_codeplug.cc:875
virtual void enableWFMVFO(bool enable)
Enables/disables VFO mode for WFM RX.
Definition: d878uv_codeplug.cc:971
virtual bool btAndInternalMic() const
Returns true if the internal mic is additionally active when BT is active.
Definition: d878uv_codeplug.cc:1179
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition: d878uv_codeplug.cc:1020
virtual void setTBSTFrequency(Frequency freq)
Sets the TBST frequency.
Definition: d878uv_codeplug.cc:1030
virtual AnytoneSettingsExtension::STEType steType() const
Returns the STE (squelch tail eliminate) type.
Definition: d878uv_codeplug.cc:898
STEFrequency
All possible STE (squelch tail eliminate) frequencies.
Definition: d878uv_codeplug.hh:446
virtual Interval btHoldTime() const
Returns the bluetooth hold time.
Definition: d878uv_codeplug.cc:1641
virtual void setTransmitTimeout(unsigned tot)
Sets the transmit timeout in seconds.
Definition: d878uv_codeplug.cc:760
virtual void setFMCallHold(unsigned sec)
Sets the analog call hold in seconds.
Definition: d878uv_codeplug.cc:1130
AnytoneKeySettingsExtension::KeyFunction funcKeyCShort() const
Returns the key function for a short press on the function key 3/C.
Definition: d878uv_codeplug.cc:826
void setFuncKey2Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 2.
Definition: d878uv_codeplug.cc:893
unsigned defaultZoneIndexA() const
Returns the default zone index (0-based) for VFO A.
Definition: d878uv_codeplug.cc:1436
virtual bool separateDisplay() const
Returns true if the "separate display" is enabled.
Definition: d878uv_codeplug.cc:1542
void setCallDisplayColor(AnytoneDisplaySettingsExtension::Color color)
Sets the display color for callsigns.
Definition: d878uv_codeplug.cc:1283
virtual void enableRemoteMonitor(bool enable)
Enables/disables remote monitor.
Definition: d878uv_codeplug.cc:1076
virtual Frequency vfoFrequencyStep() const
Returns the VFO frequency step in kHz.
Definition: d878uv_codeplug.cc:774
static constexpr unsigned int size()
Returns the size of the element.
Definition: d878uv_codeplug.hh:464
void enableKeepLastCaller(bool enable)
Enables/disables keeping the last caller when changing the channel.
Definition: d878uv_codeplug.cc:1555
virtual void enableRepeaterRangeCheck(bool enable)
Enables/disables repeater range check.
Definition: d878uv_codeplug.cc:1501
virtual void setAutoRepeaterMaxFrequencyUHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in UHF band.
Definition: d878uv_codeplug.cc:1404
virtual unsigned repeaterRangeCheckCount() const
Returns the number of repeater range checks.
Definition: d878uv_codeplug.cc:1515
virtual void enableMonitorIDMatch(bool enable)
Enables/disables monitor ID match.
Definition: d878uv_codeplug.cc:1103
virtual void setMuteDelay(Interval min)
Sets the mute delay in minutes.
Definition: d878uv_codeplug.cc:1601
virtual void enableBootReset(bool enable)
Enables/disables boot reset.
Definition: d878uv_codeplug.cc:1628
virtual unsigned transmitTimeout() const
Returns the transmit timeout in seconds.
Definition: d878uv_codeplug.cc:756
AnytoneDisplaySettingsExtension::Color callDisplayColor() const
Returns the display color for callsigns.
Definition: d878uv_codeplug.cc:1279
virtual void setTXBacklightDuration(Interval sec)
Sets the backlight duration during TX in seconds.
Definition: d878uv_codeplug.cc:1537
virtual void setManDownDelay(Interval sec)
Sets the "man down" delay in seconds.
Definition: d878uv_codeplug.cc:1121
virtual void enableMonitorColorCodeMatch(bool enable)
Enables/disables monitor color code match.
Definition: d878uv_codeplug.cc:1094
virtual void enableMonitorTimeSlotHold(bool enable)
Enables/disables monitor time slot hold.
Definition: d878uv_codeplug.cc:1112
void setRXBacklightDuration(Interval sec)
Sets the backlight duration during RX in seconds.
Definition: d878uv_codeplug.cc:1583
virtual bool bootGPSCheck() const
Returns true if boot GPS check is enabled.
Definition: d878uv_codeplug.cc:1615
AnytoneKeySettingsExtension::KeyFunction funcKey1Long() const
Returns the key function for a long press on the function key 1.
Definition: d878uv_codeplug.cc:880
virtual Frequency autoRepeaterMinFrequencyVHF() const
Returns the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: d878uv_codeplug.cc:1375
virtual bool repeaterCheckNotification() const
Returns true if repeater check notification is enabled.
Definition: d878uv_codeplug.cc:1569
virtual Interval wakeHeadPeriod() const
Returns the wake head-period in ms.
Definition: d878uv_codeplug.cc:950
bool updateConfig(Context &ctx)
Updates the abstract config from general settings.
Definition: d878uv_codeplug.cc:1777
virtual void enableWFMMonitor(bool enable)
Enables/disables WFM monitor.
Definition: d878uv_codeplug.cc:1015
virtual void setSMSFormat(AnytoneDMRSettingsExtension::SMSFormat fmt)
Sets the SMS format.
Definition: d878uv_codeplug.cc:1370
AnytoneKeySettingsExtension::KeyFunction funcKeyALong() const
Returns the key function for a long press on the function key 1.
Definition: d878uv_codeplug.cc:853
virtual void setAutoRoamDelay(Interval sec)
Sets the auto-roam delay in seconds.
Definition: d878uv_codeplug.cc:1334
virtual bool wfmMonitor() const
Returns true if WFM monitor is enabled.
Definition: d878uv_codeplug.cc:1011
void setFuncKey1Long(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: d878uv_codeplug.cc:884
void enableDefaultChannel(bool enable)
Enables/disables default boot channel.
Definition: d878uv_codeplug.cc:1431
virtual Interval preWaveDelay() const
Returns the pre-wave time in ms.
Definition: d878uv_codeplug.cc:942
virtual void setGPSUpdatePeriod(Interval sec)
Sets the GPS ranging interval in seconds.
Definition: d878uv_codeplug.cc:1210
virtual Interval autoRoamDelay() const
Returns the auto-roam delay in seconds.
Definition: d878uv_codeplug.cc:1330
virtual unsigned wfmChannelIndex() const
Returns the wide-FM (broadcast) channel index.
Definition: d878uv_codeplug.cc:959
virtual double steFrequency() const
Returns the STE (squelch tail eliminate) frequency setting in Hz.
Definition: d878uv_codeplug.cc:906
virtual bool maintainCallChannel() const
Returns true if the call channel is maintained.
Definition: d878uv_codeplug.cc:1144
void setFuncKey1Short(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a short press on the function key 1.
Definition: d878uv_codeplug.cc:839
virtual void setWFMChannelIndex(unsigned idx)
Sets the wide-FM (broadcast) channel index.
Definition: d878uv_codeplug.cc:963
virtual void enableMaintainCallChannel(bool enable)
Enables/disables maintaining the call channel.
Definition: d878uv_codeplug.cc:1148
virtual void setVFOFrequencyStep(Frequency kHz)
Sets the VFO frequency step in kHz.
Definition: d878uv_codeplug.cc:788
virtual void setBTRXDelay(Interval delay)
Sets the bluetooth RX delay in ms.
Definition: d878uv_codeplug.cc:1665
virtual unsigned repeaterCheckNumNotifications() const
Returns the number of repeater check notifications.
Definition: d878uv_codeplug.cc:1606
void enableSidekeysLock(bool enable)
Enables/disables the sidekeys lock.
Definition: d878uv_codeplug.cc:1317
virtual Interval repeaterRangeCheckInterval() const
Returns the repeater range check period in seconds.
Definition: d878uv_codeplug.cc:1506
void setDefaultChannelAToVFO()
Sets the default channel for VFO A to be VFO.
Definition: d878uv_codeplug.cc:1466
virtual bool btAndInternalSpeaker() const
Returns true if the internal speaker is additionally active when BT is active.
Definition: d878uv_codeplug.cc:1188
unsigned defaultChannelBIndex() const
Returns the default channel index for VFO B.
Definition: d878uv_codeplug.cc:1475
void setFuncKeyALong(AnytoneKeySettingsExtension::KeyFunction func)
Sets the key function for a long press on the function key 1.
Definition: d878uv_codeplug.cc:857
virtual void enableBTAndInternalSpeaker(bool enable)
Enables/disables the internal speaker when BT is active.
Definition: d878uv_codeplug.cc:1192
virtual void setAutoRepeaterMinFrequencyVHF(Frequency Hz)
Sets the minimum frequency in Hz for the auto-repeater range in VHF band.
Definition: d878uv_codeplug.cc:1379
virtual Interval txBacklightDuration() const
Returns the backlight duration during TX in seconds.
Definition: d878uv_codeplug.cc:1533
virtual void enableFilterOwnID(bool enable)
Enables/disables filter of own ID in call lists.
Definition: d878uv_codeplug.cc:1058
virtual void enableFMSendIDAndContact(bool enable)
Enables/disables sending contact with FM ID.
Definition: d878uv_codeplug.cc:1422
virtual void setAutoRoamPeriod(Interval min)
Sets the auto roaming period in minutes.
Definition: d878uv_codeplug.cc:1257
virtual unsigned int btMicGain() const
Returns the bluetooth microphone gain [1,10].
Definition: d878uv_codeplug.cc:1215
virtual void setRepeaterRangeCheckCount(unsigned n)
Sets the number of repeater range checks.
Definition: d878uv_codeplug.cc:1519
virtual Frequency autoRepeaterMaxFrequencyVHF() const
Returns the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: d878uv_codeplug.cc:1383
virtual AnytoneDMRSettingsExtension::SMSFormat smsFormat() const
Returns the SMS format.
Definition: d878uv_codeplug.cc:1366
virtual void setBTSpeakerGain(unsigned int gain)
Sets the bluetooth speaker gain [1,10].
Definition: d878uv_codeplug.cc:1229
virtual void setAutoRepeaterMaxFrequencyVHF(Frequency Hz)
Sets the maximum frequency in Hz for the auto-repeater range in VHF band.
Definition: d878uv_codeplug.cc:1387
AnytoneKeySettingsExtension::KeyFunction funcKeyBLong() const
Returns the key function for a long press on the function key 2.
Definition: d878uv_codeplug.cc:862
virtual void setRoamingStartCondition(AnytoneRoamingSettingsExtension::RoamStart cond)
Sets the roaming start condition.
Definition: d878uv_codeplug.cc:1528
virtual Interval muteDelay() const
Returns the mute delay in minutes.
Definition: d878uv_codeplug.cc:1597
virtual bool pluginRecTone() const
Returns true if the plug-in record tone is enabled.
Definition: d878uv_codeplug.cc:1197
virtual BackgroundImage standbyBackgroundImage() const
Returns the standby background image.
Definition: d878uv_codeplug.cc:1348
void enableKeyLockForced(bool enable)
Enables/disables the "professional" key lock.
Definition: d878uv_codeplug.cc:1325
AnytoneKeySettingsExtension::KeyFunction funcKey2Long() const
Returns the key function for a long press on the function key 2.
Definition: d878uv_codeplug.cc:889
virtual AnytoneDisplaySettingsExtension::Color standbyTextColor() const
Returns the standby text color.
Definition: d878uv_codeplug.cc:1339
AnytoneKeySettingsExtension::KeyFunction funcKeyCLong() const
Returns the key function for a long press on the function key 3.
Definition: d878uv_codeplug.cc:871
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:729
virtual void setRepeaterCheckNumNotifications(unsigned num)
Sets the number of repeater check notifications.
Definition: d878uv_codeplug.cc:1610
bool defaultChannelBIsVFO() const
Returns true if the default channel for VFO B is VFO.
Definition: d878uv_codeplug.cc:1471
QTimeZone gpsTimeZone() const
Returns the GPS time zone.
Definition: d878uv_codeplug.cc:747
void setKeyToneLevel(unsigned level)
Sets the key-tone level.
Definition: d878uv_codeplug.cc:1270
virtual Interval autoRoamPeriod() const
Returns the auto roaming period in minutes.
Definition: d878uv_codeplug.cc:1253
virtual void enableRepeaterCheckNotification(bool enable)
Enables/disables repeater check notification.
Definition: d878uv_codeplug.cc:1573
void enableKeypadLock(bool enable)
Enables/disables the keypad lock.
Definition: d878uv_codeplug.cc:1309
virtual void enableGPSMessage(bool enable)
Enables/disables GPS range reporting.
Definition: d878uv_codeplug.cc:1139
unsigned keyToneLevel() const
Returns the key-tone level (0=adjustable).
Definition: d878uv_codeplug.cc:1266
void clear()
Resets the general settings.
Definition: d878uv_codeplug.cc:742
Encodes the bitmap, indicating which zone is hidden.
Definition: d878uv_codeplug.hh:1771
HiddenZoneBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: d878uv_codeplug.cc:3218
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1781
Encodes some information about the radio and firmware.
Definition: d878uv_codeplug.hh:1789
virtual QString seller() const
Returns the seller.
Definition: d878uv_codeplug.cc:3348
virtual QString dealerCode() const
Returns the dealer code.
Definition: d878uv_codeplug.cc:3333
virtual bool bandSelect() const
Returns true if band select is enabled.
Definition: d878uv_codeplug.cc:3276
virtual void setProgramPassword(const QString &passwd)
Sets the program password.
Definition: d878uv_codeplug.cc:3303
RadioInfoElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:3234
virtual QString maintainedDate() const
Returns the maintained date.
Definition: d878uv_codeplug.cc:3328
virtual QString productionDate() const
Returns the production date.
Definition: d878uv_codeplug.cc:3318
virtual QString manufacturerCode() const
Returns the manufacturer code.
Definition: d878uv_codeplug.cc:3323
virtual QString areaCode() const
Returns the area code.
Definition: d878uv_codeplug.cc:3308
virtual bool international() const
Returns true if "international" is enabled.
Definition: d878uv_codeplug.cc:3267
virtual bool fullTest() const
Returns true if full test is enabled.
Definition: d878uv_codeplug.cc:3253
FrequencyRange
Possible frequency ranges for the AT-D878UV.
Definition: d878uv_codeplug.hh:1792
virtual void setBandSelectPassword(const QString &passwd)
Sets the band-select password.
Definition: d878uv_codeplug.cc:3289
virtual void enableInternational(bool enable)
Enables/disables "international".
Definition: d878uv_codeplug.cc:3271
virtual QString sellDate() const
Returns the sell date.
Definition: d878uv_codeplug.cc:3343
virtual void setFrequencyRange(FrequencyRange range)
Sets the frequency range.
Definition: d878uv_codeplug.cc:3262
virtual QString programPassword() const
Returns the program password.
Definition: d878uv_codeplug.cc:3299
virtual QString serialNumber() const
Returns the serial number.
Definition: d878uv_codeplug.cc:3313
virtual QString radioType() const
Returns the radio type.
Definition: d878uv_codeplug.cc:3294
virtual FrequencyRange frequencyRange() const
Returns the frequency range.
Definition: d878uv_codeplug.cc:3258
virtual QString bandSelectPassword() const
Returns the band-select password.
Definition: d878uv_codeplug.cc:3285
void clear()
Resets the info.
Definition: d878uv_codeplug.cc:3247
virtual void enableBandSelect(bool enable)
Enables/disables band select.
Definition: d878uv_codeplug.cc:3280
virtual QString maintainerNote() const
Returns the maintainer note.
Definition: d878uv_codeplug.cc:3353
virtual QString stockDate() const
Returns the stock date.
Definition: d878uv_codeplug.cc:3338
Represents the bitmap, indicating which roaming channel is valid.
Definition: d878uv_codeplug.hh:1648
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1658
RoamingChannelBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: d878uv_codeplug.cc:463
Implements the binary representation of a roaming channel within the codeplug.
Definition: d878uv_codeplug.hh:1566
TimeSlotValue
Encoded values for the time slot.
Definition: d878uv_codeplug.hh:1578
virtual void setTXFrequency(unsigned hz)
Sets the TX frequency in Hz.
Definition: d878uv_codeplug.cc:382
RoamingChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:352
void clear()
Resets the roaming channel.
Definition: d878uv_codeplug.cc:365
virtual bool hasColorCode() const
Returns true if the color code is set.
Definition: d878uv_codeplug.cc:387
virtual unsigned txFrequency() const
Returns the TX frequency in Hz.
Definition: d878uv_codeplug.cc:378
virtual void disableColorCode()
Disables the color code for the roaming channel.
Definition: d878uv_codeplug.cc:399
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1588
virtual void setColorCode(unsigned cc)
Sets the color code.
Definition: d878uv_codeplug.cc:395
virtual void setRXFrequency(unsigned hz)
Sets the RX frequency in Hz.
Definition: d878uv_codeplug.cc:374
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot.
Definition: d878uv_codeplug.cc:412
virtual RoamingChannel * toChannel(Context &ctx)
Constructs a RoamingChannel instance for this roaming channel.
Definition: d878uv_codeplug.cc:442
virtual unsigned rxFrequency() const
Returns the RX frequency in Hz.
Definition: d878uv_codeplug.cc:370
virtual unsigned colorCode() const
Returns the color code.
Definition: d878uv_codeplug.cc:391
virtual void setName(const QString &name)
Sets the name of the channel.
Definition: d878uv_codeplug.cc:424
ColorCodeValue
Special values for the color code.
Definition: d878uv_codeplug.hh:1573
virtual QString name() const
Returns the name of the channel.
Definition: d878uv_codeplug.cc:420
virtual bool fromChannel(const RoamingChannel *ch)
Constructs a roaming channel from the given digital channel.
Definition: d878uv_codeplug.cc:429
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition: d878uv_codeplug.cc:404
Represents the bitmap, indicating which roaming zone is valid.
Definition: d878uv_codeplug.hh:1722
RoamingZoneBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: d878uv_codeplug.cc:565
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1732
Represents a roaming zone within the binary codeplug.
Definition: d878uv_codeplug.hh:1666
virtual bool fromRoamingZone(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Assembles a binary representation of the given RoamingZone instance.
Definition: d878uv_codeplug.cc:528
virtual void setName(const QString &name)
Sets the name of the zone.
Definition: d878uv_codeplug.cc:523
static constexpr unsigned int size()
The size of the element.
Definition: d878uv_codeplug.hh:1676
virtual bool hasMember(unsigned n) const
Returns true if the n-th member is set.
Definition: d878uv_codeplug.cc:498
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index.
Definition: d878uv_codeplug.cc:506
virtual RoamingZone * toRoamingZone(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a RoamingZone instance from this configuration.
Definition: d878uv_codeplug.cc:541
void clear()
Clears the roaming zone.
Definition: d878uv_codeplug.cc:492
virtual bool linkRoamingZone(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given RoamingZone.
Definition: d878uv_codeplug.cc:547
RoamingZoneElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: d878uv_codeplug.cc:479
virtual QString name() const
Returns the name of the zone.
Definition: d878uv_codeplug.cc:519
virtual void clearMember(unsigned n)
Clears the n-th member.
Definition: d878uv_codeplug.cc:512
virtual unsigned member(unsigned n) const
Returns the n-th member index.
Definition: d878uv_codeplug.cc:502
Represents the device specific binary codeplug for Anytone AT-D878UV radios.
Definition: d878uv_codeplug.hh:230
virtual bool createRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Creates roaming channels and zones from codeplug.
Definition: d878uv_codeplug.cc:3788
void setBitmaps(Context &ctx)
Sets all bitmaps for the given config.
Definition: d878uv_codeplug.cc:3419
bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given config (via context) to the binary codeplug.
Definition: d878uv_codeplug.cc:3436
D878UVCodeplug(const QString &label, QObject *parent=nullptr)
Hidden constructor.
Definition: d878uv_codeplug.cc:3361
bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the downloaded codeplug.
Definition: d878uv_codeplug.cc:3450
bool encodeGPSSystems(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the GPS settings section.
Definition: d878uv_codeplug.cc:3630
bool linkGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Link the general settings.
Definition: d878uv_codeplug.cc:3606
void allocateGPSSystems()
Allocates GPS settings memory section.
Definition: d878uv_codeplug.cc:3621
bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Create channels from codeplug.
Definition: d878uv_codeplug.cc:3502
void allocateChannels()
Allocate channels from bitmap.
Definition: d878uv_codeplug.cc:3466
void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition: d878uv_codeplug.cc:3403
bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Link channels.
Definition: d878uv_codeplug.cc:3522
bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general settings section.
Definition: d878uv_codeplug.cc:3588
virtual bool encodeZone(int i, Zone *zone, bool isB, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Function to encode a single zone.
Definition: d878uv_codeplug.cc:3549
void allocateGeneralSettings()
Allocates general settings memory section.
Definition: d878uv_codeplug.cc:3580
void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition: d878uv_codeplug.cc:3410
virtual bool linkRoaming(Context &ctx, const ErrorStack &err=ErrorStack())
Links roaming channels and zones.
Definition: d878uv_codeplug.cc:3818
virtual bool encodeRoaming(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the roaming channels and zones.
Definition: d878uv_codeplug.cc:3754
bool allocateBitmaps()
Allocates the bitmaps.
Definition: d878uv_codeplug.cc:3374
void allocateUpdated()
Allocate all code-plug elements that must be written back to the device to maintain a working codeplu...
Definition: d878uv_codeplug.cc:3387
bool linkGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Link GPS systems.
Definition: d878uv_codeplug.cc:3699
bool createGPSSystems(Context &ctx, const ErrorStack &err=ErrorStack())
Create GPS systems from codeplug.
Definition: d878uv_codeplug.cc:3658
virtual void allocateRoaming()
Allocates memory to store all roaming channels and zones.
Definition: d878uv_codeplug.cc:3721
bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encode channels into codeplug.
Definition: d878uv_codeplug.cc:3488
bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings section.
Definition: d878uv_codeplug.cc:3597
virtual void allocateZones()
Allocate zones from bitmaps.
Definition: d878uv_codeplug.cc:3542
virtual bool decodeZone(int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack())
Function to decode a single zone.
Definition: d878uv_codeplug.cc:3563
uint32_t size() const
Returns the total size of the DFU file.
Definition: dfufile.cc:52
TimeSlot
Possible timeslots for digital channels.
Definition: channel.hh:385
Represents a digital contact, that is a DMR number.
Definition: contact.hh:141
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
A config item that encodes a melody.
Definition: melody.hh:20
Generic representation of a RX group list.
Definition: rxgrouplist.hh:14
Represents the common radio-global settings.
Definition: radiosettings.hh:14
Simple range class representing some range in some data type.
Definition: ranges.hh:14
Represents a roaming channel.
Definition: roamingchannel.hh:16
Represents a RoamingZone within the abstract device configuration.
Definition: roamingzone.hh:15
Generic representation of a scan list.
Definition: scanlist.hh:15
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
Internal used offsets within the channel element.
Definition: d868uv_codeplug.hh:286
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
Some static limits for this element.
Definition: d878uv_codeplug.hh:1433
static constexpr unsigned int fmFrequencies()
Maximum number of FM APRS frequencies.
Definition: d878uv_codeplug.hh:1441
static constexpr unsigned int dmrSystems()
Maximum number of DMR APRS systems.
Definition: d878uv_codeplug.hh:1439
static constexpr unsigned int callLength()
Maximum length of call signs.
Definition: d878uv_codeplug.hh:1435
static constexpr unsigned int pathLength()
Maximum length of the repeater path string.
Definition: d878uv_codeplug.hh:1437
Internal used offsets within the codeplug element.
Definition: d878uv_codeplug.hh:1446
Some limits.
Definition: d878uv_codeplug.hh:1526
static constexpr unsigned int length()
Maximum message length.
Definition: d878uv_codeplug.hh:1527
Internal used offsets within the channel element.
Definition: d878uv_codeplug.hh:359
Some limits for the settings.
Definition: d878uv_codeplug.hh:1131
static constexpr unsigned int maxBluetoothPTTSleepDelay()
Maximum delay in minutes.
Definition: d878uv_codeplug.hh:1132
Internal used offset within the element.
Definition: d878uv_codeplug.hh:1137
Some limits for the element.
Definition: d878uv_codeplug.hh:1201
static constexpr unsigned int nameLength()
Maximum name length.
Definition: d878uv_codeplug.hh:1202
Some internal offsets within the element.
Definition: d878uv_codeplug.hh:1207
Device specific key functions.
Definition: d878uv_codeplug.hh:385
static uint8_t encode(AnytoneKeySettingsExtension::KeyFunction tone)
Encodes key function.
Definition: d878uv_codeplug.cc:582
KeyFunctionCode
Device specific key functions.
Definition: d878uv_codeplug.hh:394
static AnytoneKeySettingsExtension::KeyFunction decode(uint8_t code)
Decodes key function.
Definition: d878uv_codeplug.cc:639
Some internal used offsets within the element.
Definition: d878uv_codeplug.hh:860
Device specific time zones.
Definition: d878uv_codeplug.hh:410
static QVector< QTimeZone > _timeZones
Vector of possible time-zones.
Definition: d878uv_codeplug.hh:419
static uint8_t encode(const QTimeZone &zone)
Encodes time zone.
Definition: d878uv_codeplug.cc:719
static QTimeZone decode(uint8_t code)
Decodes time zone.
Definition: d878uv_codeplug.cc:713
Some limits.
Definition: d878uv_codeplug.hh:1926
static constexpr unsigned int analogAPRSRXEntries()
Maximum number of analog APRS RX entries.
Definition: d878uv_codeplug.hh:1927
static constexpr unsigned int roamingChannels()
Maximum number of roaming channels.
Definition: d878uv_codeplug.hh:1928
static constexpr unsigned int roamingZones()
Maximum number of roaming zones.
Definition: d878uv_codeplug.hh:1929
static constexpr unsigned int aesKeys()
Maximum number of AES keys.
Definition: d878uv_codeplug.hh:1930
Channel name and call-sign colors supported by the D878UV.
Definition: d878uv_codeplug.hh:235
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: d878uv_codeplug.cc:34
CodedColor
Encoding of the supported colors.
Definition: d878uv_codeplug.hh:244
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: d878uv_codeplug.cc:19
Internal offsets within the codeplug.
Definition: d878uv_codeplug.hh:1935
Some limits.
Definition: d878uv_codeplug.hh:1628
static constexpr unsigned int nameLength()
Maximum name length.
Definition: d878uv_codeplug.hh:1629
Some internal offsets within the element.
Definition: d878uv_codeplug.hh:1634
Some limits.
Definition: d878uv_codeplug.hh:1704
static constexpr unsigned int nameLength()
Maximum name length.
Definition: d878uv_codeplug.hh:1705
static constexpr unsigned int numMembers()
Maximum number of roaming channel in zone.
Definition: d878uv_codeplug.hh:1706
Some internal offsets within the element.
Definition: d878uv_codeplug.hh:1711
Text colors supported by the D878UV.
Definition: d878uv_codeplug.hh:250
CodedColor
Encoding of the supported colors.
Definition: d878uv_codeplug.hh:259
static AnytoneDisplaySettingsExtension::Color decode(uint8_t code)
Maps code -> color.
Definition: d878uv_codeplug.cc:53
static uint8_t encode(AnytoneDisplaySettingsExtension::Color color)
Maps color -> code.
Definition: d878uv_codeplug.cc:68
Helper type to encode frequencies without any rounding error.
Definition: frequency.hh:11