libdrmconf  0.9.0
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 #include "codeplugcontext.hh"
9 
10 class Channel;
11 class DigitalContact;
12 class Zone;
13 class RXGroupList;
14 class ScanList;
15 class GPSSystem;
16 
17 
217 {
218  Q_OBJECT
219 
220 public:
226  struct __attribute__((packed)) channel_t {
228  typedef enum {
229  MODE_ANALOG = 0,
230  MODE_DIGITAL = 1,
231  MODE_MIXED_A_D = 2,
232  MODE_MIXED_D_A = 3
233  } Mode;
234 
236  typedef enum {
237  POWER_LOW = 0,
238  POWER_MIDDLE = 1,
239  POWER_HIGH = 2,
240  POWER_TURBO = 3
241  } Power;
242 
244  typedef enum {
245  BW_12_5_KHZ = 0,
246  BW_25_KHZ = 1
247  } Bandwidth;
248 
250  typedef enum {
251  RM_SIMPLEX = 0,
252  RM_TXPOS = 1,
253  RM_TXNEG = 2
254  } RepeaterMode;
255 
257  typedef enum {
258  PTTID_OFF = 0,
259  PTTID_START = 1,
260  PTTID_END = 2,
261  PTTID_START_END = 3
262  } PTTId;
263 
265  typedef enum {
266  SQ_CARRIER = 0,
267  SQ_TONE = 1
268  } SquelchMode;
269 
271  typedef enum {
272  ADMIT_ALWAYS = 0,
273  ADMIT_CH_FREE = 1,
274  ADMIT_CC_DIFF = 2,
275  ADMIT_CC_SAME = 3
276  } Admit;
277 
279  typedef enum {
280  OPTSIG_OFF = 0,
281  OPTSIG_DTMF = 1,
282  OPTSIG_2TONE = 2,
283  OPTSIG_5TONE = 3
284  } OptSignaling;
285 
287  typedef enum {
288  APRS_REPORT_OFF = 0,
289  APRS_REPORT_ANALOG = 1,
290  APRS_REPORT_DIGITAL = 2
291  } APRSReport;
292 
294  typedef enum {
295  APRS_PTT_OFF = 0,
296  APRS_PTT_START = 1,
297  APRS_PTT_END = 2
298  } APRSPTT;
299 
300 
301  // Bytes 00
302  uint32_t rx_frequency;
303  uint32_t tx_offset;
304 
305  // Byte 08
306  uint8_t channel_mode : 2,
307  power : 2,
308  bandwidth : 1,
309  _unused8 : 1,
311 
312  // Byte 09
313  uint8_t rx_ctcss : 1,
314  rx_dcs : 1,
315  tx_ctcss : 1,
316  tx_dcs : 1,
317  reverse : 1,
318  rx_only : 1,
321 
322  // Bytes 0a
323  uint8_t ctcss_transmit;
324  uint8_t ctcss_receive;
325  uint16_t dcs_transmit;
326  uint16_t dcs_receive;
327 
328  // Bytes 10
329  uint16_t custom_ctcss;
330  uint8_t tone2_decode;
331  uint8_t _unused19;
332 
333  // Bytes 14
334  uint32_t contact_index;
335 
336  // Byte 18
337  uint8_t id_index;
338 
339  // Byte 19
340  uint8_t ptt_id : 2,
344 
345  // Byte 1a
346  uint8_t tx_permit : 2,
350 
351  // Bytes 1b
352  uint8_t scan_list_index;
354  uint8_t id_2tone;
355  uint8_t id_5tone;
356  uint8_t id_dtmf;
357 
358  // Byte 20
359  uint8_t color_code;
360 
361  // Byte 21
362  uint8_t slot2 : 1,
367  rx_gps : 1,
370 
371  // Byte 22
372  uint8_t aes_encryption;
373 
374  // Bytes 23
375  uint8_t name[16];
376  uint8_t _pad51;
377 
378  // Byte 34
379  uint8_t ranging : 1,
384 
385  // Byte 35
386  uint8_t aprs_report : 2,
387  _unused53 : 6;
388 
389  // Bytes 36
390  uint8_t analog_aprs_ptt;
391  uint8_t digi_aprs_ptt;
392  uint8_t gps_system;
394  uint8_t dmr_encryption;
395  uint8_t multiple_keys : 1,
399  uint32_t _unused60;
400 
402  channel_t();
403 
405  void clear();
406 
408  bool isValid() const;
409 
411  double getRXFrequency() const;
413  void setRXFrequency(double f);
414 
416  double getTXFrequency() const;
420  void setTXFrequency(double f);
421 
423  QString getName() const;
425  void setName(const QString &name);
426 
428  Signaling::Code getRXTone() const;
430  void setRXTone(Signaling::Code code);
432  Signaling::Code getTXTone() const;
434  void setTXTone(Signaling::Code code);
435 
437  Channel *toChannelObj() const;
439  bool linkChannelObj(Channel *c, const CodeplugContext &ctx) const;
441  void fromChannelObj(const Channel *c, const Config *conf);
442  };
443 
447  struct __attribute__((packed)) general_settings_base_t {
449  enum PowerOnDisplay : uint8_t {
450  PWR_ON_DEFAULT = 0,
451  PWR_ON_CUSTOM_TEXT = 1,
452  PWR_ON_CUSTOM_IMG = 2
453  };
454 
456  enum DisplayMode : uint8_t {
457  DISPLAY_CHANNEL = 0,
458  DISPLAY_FREQUENCY = 1
459  };
460 
462  enum AutoShutdown : uint8_t {
463  AUTO_SHUTDOWN_OFF = 0,
464  AUTO_SHUTDOWN_10min = 1,
465  AUTO_SHUTDOWN_30min = 2,
466  AUTO_SHUTDOWN_60min = 3,
467  AUTO_SHUTDOWN_120min = 4
468  };
469 
471  enum Language : uint8_t {
472  LANG_ENGLISH = 0,
473  LANG_GERMAN = 1
474  };
475 
477  enum FreqStep : uint8_t {
478  FREQ_STEP_2_5kHz = 0,
479  FREQ_STEP_5kHz = 1,
480  FREQ_STEP_6_25kHz = 2,
481  FREQ_STEP_10kHz = 3,
482  FREQ_STEP_12_5kHz = 4,
483  FREQ_STEP_20kHz = 5,
484  FREQ_STEP_25kHz = 6,
485  FREQ_STEP_50kHz = 7
486  };
487 
489  enum PowerSave : uint8_t {
490  PWR_SAVE_OFF = 0,
491  PWR_SAVE_1_TO_1 = 1,
492  PWR_SAVE_2_TO_1 = 2
493  };
494 
496  enum VFOScanType : uint8_t {
497  SCAN_TYPE_TO = 0,
498  SCAN_TYPE_CO = 1,
499  SCAN_TYPE_SE = 2
500  };
501 
503  enum KeyFunction : uint8_t {
504  KF_OFF = 0x00, KF_VOLTAGE = 0x01, KF_POWER = 0x02, KF_REPEATER = 0x03, KF_REVERSE = 0x04,
505  KF_DIGITAL_ENCRYPTION = 0x05, KF_CALL = 0x06, KF_VOX = 0x07, KF_VFO_CHANNEL = 0x08,
506  KF_SUB_PTT = 0x09, KF_SCAN = 0x0a, KF_FM = 0x0b, KF_ALARM = 0x0c, KF_RECORD_SWITCH = 0x0d,
507  KF_RECORD = 0x0e, KF_SMS = 0x0f, KF_DIAL = 0x10, KF_GPS_INFORMATION = 0x11, KF_MONITOR = 0x12,
508  KF_MAIN_CHANNEL_SWITCH = 0x13, KF_HOT_KEY_1 = 0x14, KF_HOT_KEY_2 = 0x15, KF_HOT_KEY_3 = 0x16,
509  KF_HOT_KEY_4 = 0x17, KF_HOT_KEY_5 = 0x18, KF_HOT_KEY_6 = 0x19, KF_WORK_ALONE = 0x1a,
510  KF_NUISANCE_DELETE = 0x1b, KF_DIGITAL_MONITOR = 0x1c, KF_SUB_CH_SWITCH = 0x1d,
511  KF_PRIORITY_ZONE = 0x1e, KF_VFO_SCAN = 0x1f, KF_MIC_SOUND_QUALITY = 0x20,
512  KF_LAST_CALL_REPLY = 0x21, KF_CHANNEL_TYPE_SWITCH = 0x22, KF_RANGING = 0x23,
513  KF_ROAMING = 0x24, KF_CHANEL_RANGING = 0x25, KF_MAX_VOLUME = 0x26, KF_SLOT_SWITCH = 0x27,
514  KF_APRS_TYPE_SWITCH = 0x28, KF_ZONE_SELECT = 0x29, KF_TIMED_ROAMING_SET = 0x2a,
515  KF_APRS_SET = 0x2b, KF_MUTE_TIMEING = 0x2c, KF_CTCSS_DCS_SET = 0x2d, KF_TBST_SEND = 0x2e,
516  KF_BLUETOOTH = 0x2f, KF_GPS = 0x30, KF_CHANNEL_NAME = 0x31, KF_CDT_SCAN = 0x32
517  };
518 
520  enum STEType : uint8_t {
521  STE_TYPE_OFF = 0,
522  STE_TYPE_SILENT = 1,
523  STE_TYPE_DEG_120 = 2,
524  STE_TYPE_DEG_180 = 3,
525  STE_TYPE_DEG_240 = 4
526  };
527 
529  enum STEFrequency : uint8_t {
530  STE_FREQ_OFF = 0,
531  STE_FREQ_STE_55_2Hz = 1,
532  STE_FREQ_STE_259_2Hz = 2
533  };
534 
536  enum DTMFDuration : uint8_t {
537  DTMF_DUR_50ms = 0,
538  DTMF_DUR_100ms = 1,
539  DTMF_DUR_200ms = 2,
540  DTMF_DUR_300ms = 3,
541  DTMF_DUR_500ms = 4
542  };
543 
545  enum BackLightDur : uint8_t {
546  BACKLIGHT_ALWAYS = 0,
547  BACKLIGHT_5s = 1,
548  BACKLIGHT_10s = 2,
549  BACKLIGHT_15s = 3,
550  BACKLIGHT_20s = 4,
551  BACKLIGHT_25s = 5,
552  BACKLIGHT_30s = 6,
553  BACKLIGHT_1min = 7,
554  BACKLIGHT_2min = 8,
555  BACKLIGHT_3min = 9,
556  BACKLIGHT_4min = 10,
557  BACKLIGHT_5min = 11,
558  BACKLIGHT_15min = 12,
559  BACKLIGHT_30min = 13,
560  BACKLIGHT_45min = 14,
561  BACKLIGHT_60min = 15,
562  };
563 
565  enum TBSTFrequency : uint8_t {
566  TBST_1000Hz = 0,
567  TBST_1450Hz = 1,
568  TBST_1750Hz = 2,
569  TBST_2100Hz = 3
570  };
571 
573  enum PermitTone : uint8_t {
574  PERMIT_OFF = 0,
575  PERMIT_DIGITAL = 1,
576  PERMIT_ANALOG = 2,
577  PERMIT_BOTH = 3
578  };
579 
581  enum VOXSource : uint8_t {
582  VOXSRC_BUILT_IN = 0,
583  VOXSRC_EXTERNAL = 1,
584  VOXSRC_BOTH = 2
585  };
586 
588  enum Color : uint8_t {
589  COL_ORANGE = 0,
590  COL_RED = 1,
591  COL_YELLOW = 2,
592  COL_GREEN = 3,
593  COL_TURQUOISE = 4,
594  COL_BLUE = 5,
595  COL_WHITE = 6
596  };
597 
599  enum SMSFormat : uint8_t {
600  SMS_FMT_M = 0,
601  SMS_FMT_H = 1,
602  SMS_FMT_DMR = 2,
603  };
604 
605  // Bytes 0x00-0x0f.
606  uint8_t keytone;
608  uint8_t auto_keylock;
613  uint8_t pwron_passwd;
615  uint8_t sql_level_a;
616  uint8_t sql_level_b;
618  uint8_t vox_level;
619  uint8_t vox_delay;
621  uint8_t mic_gain;
622 
623  // Bytes 0x10-0x1f.
629  uint8_t vfo_mode_a;
630  uint8_t vfo_mode_b;
635  uint8_t prewave_time;
638  uint8_t fm_vfo_mode;
639  uint8_t current_zone_a;
640 
641  // Bytes 0x20-0x2f.
642  uint8_t current_zone_b;
643  uint8_t _unused0021;
644  uint8_t record_enable;
646  uint8_t enable_man_down;
647  uint8_t _unused0025;
650  uint8_t gps_enable;
652  uint8_t _unknown002a;
654  uint8_t main_ch_set_b;
657  uint8_t call_alert;
658 
659  // Byte 0x30-3f
660  uint8_t timezone;
664  uint8_t enable_pro_mode;
665  uint8_t _unused0035;
666  uint8_t ch_idle_tone;
667  uint8_t menu_exit_time;
669  uint8_t startup_tone;
670  uint8_t call_end_box;
671  uint8_t max_sp_volume;
672  uint8_t remote_stun;
673  uint8_t _unused003d;
674  uint8_t remote_monitor;
675  uint8_t gps_sms_enable;
676 
677  // Bytes 0x40-0x4f
678  uint8_t _unknown0040;
684  uint8_t long_key_time;
686  uint8_t autorep_vfo_a;
687  uint8_t digi_mon_slot;
688  uint8_t digi_mon_cc;
689  uint8_t digi_mon_id;
690  uint8_t mon_slot_hold;
692  uint8_t _unused003e;
693  uint8_t man_down_delay;
694 
695  // Bytes 0x50-0x5f
698  uint8_t max_hp_volume;
700  uint8_t _unknown0054[3];
701  uint8_t enh_mic_sound;
703  uint32_t vfo_scan_uhf_stop;
704 
705  // Bytes 0x60-0x6f
707  uint32_t vfo_scan_vhf_stop;
710  uint8_t _unknown0069[4];
712  uint8_t pri_zone_a;
713 
714  // Bytes 0x70-0xaf
715  uint8_t pri_zone_b;
716  uint8_t _unused0071;
717  uint16_t call_tone_freq[5];
718  uint16_t call_tone_dur[5];
719  uint16_t idle_tone_freq[5];
720  uint16_t idle_tone_dur[5];
721  uint16_t callend_tone_freq[5];
722  uint16_t callend_tone_dur[5];
723  uint8_t record_delay;
724  uint8_t call_disp_mode;
725 
726  // Bytes 0xb0-0xbf
727  uint8_t _unknown00b0[5];
729  uint8_t _unknown00b6[2];
731  uint8_t disp_contact;
732  uint8_t roam_period;
733  uint8_t key_tone_adj;
735  uint8_t gps_unit;
736  uint8_t key_lock_knob : 1,
742  uint8_t roam_wait;
743 
744  // Bytes 0xc0-0xcf
749  uint32_t autorep_vhf1_min;
750  uint32_t autorep_vhf1_max;
751  uint32_t autorep_uhf1_min;
752 
753  // Bytes 0xd0-0xdf
754  uint32_t autorep_uhf1_max;
755  uint8_t autorep_vfo_b;
756  uint8_t _unknown00d5;
757  uint8_t _unknown00d6;
758  uint8_t boot_ch;
761  uint8_t vfo_a_ch_index;
762  uint8_t vfo_b_ch_index;
764  uint8_t repchk_enable;
765  uint8_t repchk_interval;
766  uint8_t repchk_recon;
767 
768  // Bytes 0x0e0-0x0ef
769  uint8_t roam_start_cond;
774  uint8_t repchk_notify;
776  uint8_t roam_enable;
777  uint8_t _unused00e8;
778  uint8_t mute_delay;
781  uint8_t startup_reset;
782  uint8_t _unknown00ed[3];
783 
784  // Bytes 0x0f0-0x0ff
785  uint8_t _unknown00f0[16];
786 
790  void clear();
791 
793  uint getMicGain() const;
795  void setMicGain(uint gain);
796 
798  void fromConfig(const Config *config, const Flags &flags);
800  void updateConfig(Config *config);
801  };
802 
806  struct __attribute__((packed)) general_settings_ext1_t {
807  uint8_t gps_message[32];
808  uint8_t _unkown0020[16];
809 
811  void fromConfig(const Config *conf, const Flags &flags);
812  };
813 
817  struct __attribute__((packed)) general_settings_ext2_t {
819  enum TalkerAliasDisplay : uint8_t {
820  TA_DISPLAY_OFF = 0,
821  TA_DISPLAY_CONTACTS = 1,
822  TA_DISPLAY_AIR = 2
823  };
825  enum TalkerAliasEncoding : uint8_t {
826  TA_ENCODING_ISO8 = 0,
827  TA_ENCODING_ISO7 = 1,
828  TA_ENCODING_UNICODE = 2,
829  };
830 
831  // Byte 0x00
832  uint8_t send_alias;
833  uint8_t _unknown0001[15];
834  // Byte 0x10
835  uint8_t _unknown0010[14];
838  // Byte 0x20
839  uint8_t _unknown0020[2];
842  uint32_t autorep_vhf2_min;
843  uint32_t autorep_vfh2_max;
844  uint32_t autorep_uhf2_min;
845  // Byte 0x30
846  uint32_t autorep_uhf2_max;
847  uint8_t _unknown0034;
848  uint8_t gps_mode;
849  uint8_t _unknown0036[10];
850  // Byte 0x40
851  uint8_t _unknown0040[16];
852  // Byte 0x50
853  uint8_t _unknown0050[16];
854  // Byte 0x60
855  uint8_t _unknown0060[16];
856  // Byte 0x70
857  uint8_t _unknown0070[16];
858  // Byte 0x80
859  uint8_t _unknown0080[16];
860  // Byte 0x90
861  uint8_t _unknown0090[16];
862  // Byte 0xa0
863  uint8_t _unknown00a0[16];
864  // Byte 0xb0
865  uint8_t _unknown00b0[16];
866  // Byte 0xc0
867  uint8_t _unknown00c0[16];
868  // Byte 0xd0
869  uint8_t _unknown00d0[16];
870  // Byte 0xe0
871  uint8_t _unknown00e0[16];
872  // Byte 0xf0
873  uint8_t _unknown00f0[16];
874 
876  void fromConfig(const Config *conf, const Flags &flags);
877  };
878 
884  struct __attribute__((packed)) aprs_setting_t {
886  enum SignalingType: uint8_t {
887  SIG_OFF = 0,
888  SIG_CTCSS = 1,
889  SIG_DCS = 2
890  };
891 
893  enum Power: uint8_t {
894  POWER_LOW = 0,
895  POWER_MID = 1,
896  POWER_HIGH = 2,
897  POWER_TURBO = 3
898  };
899 
901  enum Hemisphere: uint8_t {
902  NORTH = 0,
903  SOUTH = 1,
904  EAST = 0,
905  WEST = 1
906  };
907 
908  // byte 0x00
909  uint8_t _unknown0;
910  uint32_t frequency;
911  uint8_t tx_delay;
913  uint8_t ctcss;
914  uint16_t dcs;
917  uint8_t tx_tone_enable;
919 
920  uint8_t fixed_location;
921  uint8_t lat_deg;
922  uint8_t lat_min;
923  uint8_t lat_sec;
925  uint8_t lon_deg;
926  uint8_t lon_min;
927  uint8_t lon_sec;
929 
930  uint8_t to_call[6];
931  uint8_t to_ssid;
932 
933  uint8_t from_call[6];
934  uint8_t from_ssid;
935 
936  // byte 0x24
937  uint8_t path[20];
938  uint8_t _pad56;
939 
940  // byte 0x39
941  char table;
942  char icon;
945  uint8_t prewave_delay;
946 
947  // bytes 0x3d
948  uint8_t _unknown61;
949  uint8_t _unknown62;
950  uint8_t _unknown63;
951 
954  bool isValid() const;
955 
957  double getFrequency() const;
959  void setFrequency(double freq);
960 
962  int getAutoTXInterval() const;
964  void setAutoTxInterval(int sec);
965 
967  int getManualTXInterval() const;
969  void setManualTxInterval(int sec);
970 
972  QString getDestination() const;
974  void setDestination(const QString &call, uint8_t ssid);
975 
977  QString getSource() const;
979  void setSource(const QString &call, uint8_t ssid);
980 
982  QString getPath() const;
984  void setPath(const QString &path);
985 
987  Signaling::Code getSignaling() const;
989  void setSignaling(Signaling::Code signaling);
990 
992  Channel::Power getPower() const;
994  void setPower(Channel::Power pwr);
995 
997  APRSSystem::Icon getIcon() const;
999  void setIcon(APRSSystem::Icon icon);
1000 
1002  void fromAPRSSystem(APRSSystem *sys);
1004  APRSSystem *toAPRSSystem();
1007  void linkAPRSSystem(APRSSystem *sys, CodeplugContext &ctx);
1008  };
1009 
1010 
1015  struct __attribute__((packed)) aprs_setting_ext_t {
1016  uint8_t _unknown0000[6];
1017  uint16_t fixed_altitude;
1018  uint8_t rep_position : 1,
1021  rep_item : 1,
1023  rep_wx : 1,
1024  rep_nmea : 1,
1026  uint8_t rep_other : 1,
1028  uint8_t _unknown000a[6];
1029 
1030  uint8_t _unknown0010[16];
1031  uint8_t _unknown0020[16];
1032  uint8_t _unknown0030[16];
1033  uint8_t _unknown0040[16];
1034  uint8_t _unknown0050[16];
1035  };
1036 
1041  struct __attribute__((packed)) aprs_rx_entry_t {
1042  uint8_t enabled;
1043  char call[6];
1044  uint8_t ssid;
1045  };
1046 
1052  struct __attribute__((packed)) gps_systems_t {
1053  // byte 0x00
1054  uint16_t digi_channels[8];
1055  // bytes 0x10-0x2f
1057  uint32_t talkgroups[8];
1058  // bytes 0x30-0x4f
1059  uint8_t calltypes[8];
1061  uint8_t timeslots[8];
1062  uint8_t rep_act_delay;
1063  uint8_t _unknown66[30];
1065 
1067  gps_systems_t();
1069  void clear();
1071  bool isValid(int idx) const;
1072 
1074  uint32_t getContactId(int idx) const;
1076  void setContactId(int idx, uint32_t number);
1078  DigitalContact::Type getContactType(int idx) const;
1080  void setContactType(int idx, DigitalContact::Type type);
1081 
1083  uint16_t getChannelIndex(int idx) const;
1085  void setChannelIndex(int idx, uint16_t ch_index);
1086 
1088  void fromGPSSystems(const Config *conf);
1090  void fromGPSSystemObj(GPSSystem *sys, const Config *conf);
1092  GPSSystem *toGPSSystemObj(int idx) const;
1094  bool linkGPSSystem(int idx, GPSSystem *sys, const CodeplugContext &ctx) const;
1095  };
1096 
1097 
1102  struct __attribute__((packed)) roaming_channel_t {
1103  uint32_t rx_frequency;
1104  uint32_t tx_frequency;
1105  uint8_t colorcode;
1106  uint8_t timeslot;
1107  uint8_t name[16];
1108  uint8_t _unused26[6];
1109 
1111  double getRXFrequency() const;
1113  void setRXFrequency(double f);
1115  double getTXFrequency() const;
1117  void setTXFrequency(double f);
1119  DigitalChannel::TimeSlot getTimeslot() const;
1121  void setTimeslot(DigitalChannel::TimeSlot ts);
1123  uint getColorCode() const;
1125  void setColorCode(uint8_t cc);
1127  QString getName() const;
1129  void setName(const QString &name);
1130 
1132  void fromChannel(DigitalChannel *ch);
1134  DigitalChannel *toChannel(CodeplugContext &ctx);
1135  };
1136 
1141  struct __attribute__((packed)) roaming_zone_t {
1142  uint8_t channels[64];
1143  uint8_t name[16];
1144  uint8_t _unused80[48];
1145 
1147  QString getName() const;
1149  void setName(const QString &name);
1150 
1152  void fromRoamingZone(RoamingZone *zone, const QHash<DigitalChannel *, int> &map);
1154  RoamingZone *toRoamingZone();
1156  bool linkRoamingZone(RoamingZone *zone, CodeplugContext &ctx);
1157  };
1158 
1161  struct __attribute__((packed)) encryption_key_t {
1162  uint8_t index;
1163  uint8_t key[32];
1164  uint8_t _unused34;
1165  uint8_t _unknown35;
1166  uint8_t _unused36[28];
1167  };
1168 
1174  struct __attribute__((packed)) radio_info_t {
1176  enum FrequencyRange : uint8_t {
1177  FR_RX_400_480_136_174_TX_400_480_136_174 = 0,
1178  FR_RX_400_480_136_174_TX_400_480_136_174_STEP_12_5kHz = 1,
1179  FR_RX_430_440_136_174_TX_430_440_136_174 = 2,
1180  FR_RX_400_480_136_174_TX_430_440_144_146 = 3,
1181  FR_RX_440_480_136_174_TX_440_480_136_174 = 4,
1182  FR_RX_440_480_144_146_TX_440_480_144_146 = 5,
1183  FR_RX_446_447_136_174_TX_446_447_136_174 = 6,
1184  FR_RX_400_480_136_174_TX_420_450_136_174 = 7,
1185  FR_RX_400_470_136_174_TX_400_470_136_174 = 8,
1186  FR_RX_430_432_144_146_TX_430_432_144_146 = 9,
1187  FR_RX_400_480_136_174_TX_430_450_144_148 = 10,
1188  FR_RX_400_520_136_174_TX_400_520_136_174 = 11,
1189  FR_RX_400_490_136_174_TX_400_490_136_174 = 12,
1190  FR_RX_400_480_136_174_TX_403_470_136_174 = 13,
1191  FR_RX_400_520_220_225_136_174_TX_400_520_220_225_136_174 = 14,
1192  FR_RX_420_520_144_148_TX_420_520_144_148 = 15,
1193  FR_RX_430_440_144_147_TX_430_440_144_147 = 16,
1194  FR_RX_430_440_136_174_TX_136_174 = 17
1195  };
1196 
1197  uint16_t _unknown00;
1201  uint8_t _unknown05;
1203  uint8_t _unknown07[4];
1204  char band_select_passwd[4];
1205  uint8_t _unknown0f;
1206 
1207  char radio_type[7];
1208  uint16_t _unknown17;
1209  uint8_t _unknown19[7];
1210 
1211  uint8_t _unkown20[8];
1212  char prog_passwd[4];
1213  char area_code[4];
1214 
1215  char serial_number[16];
1216 
1217  char production_date[10];
1218  uint8_t _unused4a[6];
1219 
1220  char maunfacture[8];
1221  uint8_t _unused58[8];
1222  // 0x60
1223  char maintained_date[16];
1224  // 0x70
1225  char dealer_code[16];
1226  // 0x80
1227  char stock_date[16];
1228  // 0x90
1229  char sell_date[16];
1230  // 0xa0
1231  char seller[16];
1232  // 0xb0
1233  char maintained_desc[0x80];
1234  };
1235 
1236 
1237 public:
1239  explicit D878UVCodeplug(QObject *parent = nullptr);
1240 
1242  void clear();
1243 
1245  void setBitmaps(Config *config);
1246 
1249  void allocateForDecoding();
1252  void allocateUpdated();
1254  void allocateForEncoding();
1255 
1257  bool decode(Config *config);
1259  bool decode(Config *config, CodeplugContext &ctx);
1261  bool encode(Config *config, const Flags &flags = Flags());
1262 
1263 protected:
1264  void allocateChannels();
1265  bool encodeChannels(Config *config, const Flags &flags);
1266  bool createChannels(Config *config, CodeplugContext &ctx);
1267  bool linkChannels(Config *config, CodeplugContext &ctx);
1268 
1269  void allocateGeneralSettings();
1270  bool encodeGeneralSettings(Config *config, const Flags &flags);
1271  bool decodeGeneralSettings(Config *config);
1272 
1273  void allocateGPSSystems();
1274  bool encodeGPSSystems(Config *config, const Flags &flags);
1275  bool createGPSSystems(Config *config, CodeplugContext &ctx);
1276  bool linkGPSSystems(Config *config, CodeplugContext &ctx);
1277 
1279  virtual void allocateRoaming();
1281  virtual bool encodeRoaming(Config *config, const Flags &flags);
1283  virtual bool createRoaming(Config *config, CodeplugContext &ctx);
1285  virtual bool linkRoaming(Config *config, CodeplugContext &ctx);
1286 };
1287 
1288 #endif // D878UVCODEPLUG_HH
D878UVCodeplug::general_settings_base_t
Represents the general config of the radio within the binary codeplug.
Definition: d878uv_codeplug.hh:447
D878UVCodeplug::general_settings_base_t::autorep_vhf1_off
uint8_t autorep_vhf1_off
Auto repeater offset VHF1 index, 0-based, disabled=0xff.
Definition: d878uv_codeplug.hh:709
D878UVCodeplug::aprs_setting_t::_unknown62
uint8_t _unknown62
Unknown, set to 03.
Definition: d878uv_codeplug.hh:949
D878UVCodeplug::channel_t::digi_aprs_ptt
uint8_t digi_aprs_ptt
Enable digital APRS PTT, 0=off, 1=on.
Definition: d878uv_codeplug.hh:391
D878UVCodeplug::general_settings_base_t::transmit_timeout
uint8_t transmit_timeout
Transmit timeout (TOT) in multiples of 30s, default 0=off.
Definition: d878uv_codeplug.hh:610
D878UVCodeplug::channel_t::dcs_transmit
uint16_t dcs_transmit
TX DCS code: 0=D000N, 511=D777N, 512=D000I, 1023=D777I, DCS code-number in octal, little-endian.
Definition: d878uv_codeplug.hh:325
D878UVCodeplug::allocateRoaming
virtual void allocateRoaming()
Allocates memory to store all roaming channels and zones.
Definition: d878uv_codeplug.cc:1297
D878UVCodeplug::general_settings_ext1_t
General settings extension 1.
Definition: d878uv_codeplug.hh:806
D878UVCodeplug::general_settings_base_t::roam_default_zone
uint8_t roam_default_zone
Roaming default zone index, 0-based.
Definition: d878uv_codeplug.hh:763
D878UVCodeplug::roaming_channel_t::timeslot
uint8_t timeslot
Timeslot, 0=TS1, 1=TS2.
Definition: d878uv_codeplug.hh:1106
D878UVCodeplug::radio_info_t::_unknown05
uint8_t _unknown05
Unknown information, usually set to 0x01.
Definition: d878uv_codeplug.hh:1201
D878UVCodeplug::general_settings_base_t::language
Language language
UI Language, see Language, default english.
Definition: d878uv_codeplug.hh:611
D878UVCodeplug::aprs_setting_t::Power
Power
Power setting for the APRS/GPS channel.
Definition: d878uv_codeplug.hh:893
D878UVCodeplug::channel_t::_unused26_1
uint8_t _unused26_1
Unused, set to 0.
Definition: d878uv_codeplug.hh:347
D878UVCodeplug::general_settings_base_t::autorep_vhf1_min
uint32_t autorep_vhf1_min
Auto repeater VHF1 minimum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:749
D878UVCodeplug::channel_t::talkaround
uint8_t talkaround
Talk-around enable.
Definition: d878uv_codeplug.hh:320
Channel
The base class of all channels (analog and digital) of a codeplug configuration.
Definition: channel.hh:27
D878UVCodeplug::channel_t::bandwidth
uint8_t bandwidth
Bandwidth: 12.5 or 25 kHz, see Bandwidth.
Definition: d878uv_codeplug.hh:308
D878UVCodeplug::channel_t::tx_dcs
uint8_t tx_dcs
DCS encode enable.
Definition: d878uv_codeplug.hh:316
D878UVCodeplug::aprs_setting_ext_t::rep_position
uint8_t rep_position
Report position flag.
Definition: d878uv_codeplug.hh:1018
D878UVCodeplug::channel_t::opt_signal
uint8_t opt_signal
Optional signaling, see OptSignaling.
Definition: d878uv_codeplug.hh:348
D878UVCodeplug::encodeChannels
bool encodeChannels(Config *config, const Flags &flags)
Encode channels into codeplug.
Definition: d878uv_codeplug.cc:1138
D878UVCodeplug::general_settings_base_t::startup_gps_test
uint8_t startup_gps_test
Test GPS on boot, default off=0x00.
Definition: d878uv_codeplug.hh:780
D878UVCodeplug::general_settings_base_t::enable_fm_monitor
uint8_t enable_fm_monitor
Enables FM (broadcast) monitor, default off=0x00.
Definition: d878uv_codeplug.hh:653
D878UVCodeplug::general_settings_ext2_t::send_alias
uint8_t send_alias
Send talker alias, 0=off, 1=on.
Definition: d878uv_codeplug.hh:832
D878UVCodeplug::general_settings_base_t::key_tone_adj
uint8_t key_tone_adj
Key tone adjust, fixed 0x01-0x0f, or 0x00=variable.
Definition: d878uv_codeplug.hh:733
D878UVCodeplug::aprs_setting_ext_t::rep_wx
uint8_t rep_wx
WX report flag.
Definition: d878uv_codeplug.hh:1023
D878UVCodeplug::aprs_setting_ext_t
Represents an extension to the APRS settings.
Definition: d878uv_codeplug.hh:1015
D878UVCodeplug::general_settings_base_t::power_save
PowerSave power_save
Power-save settings, see PowerSave.
Definition: d878uv_codeplug.hh:617
D878UVCodeplug::general_settings_ext2_t::gps_mode
uint8_t gps_mode
GPS mode, GPS=0x00, BDS=0x01, GPS+BDS=0x02.
Definition: d878uv_codeplug.hh:848
D878UVCodeplug::general_settings_base_t::repchk_enable
uint8_t repchk_enable
Repeater range check enable, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:764
D878UVCodeplug::general_settings_base_t::_unused0025
uint8_t _unused0025
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:647
D878UVCodeplug::general_settings_base_t::AutoShutdown
AutoShutdown
Controlls the automatic shut down.
Definition: d878uv_codeplug.hh:462
D878UVCodeplug::aprs_setting_t::power
Power power
Transmit power.
Definition: d878uv_codeplug.hh:944
D878UVCodeplug::general_settings_ext2_t::autorep_vhf2_off
uint8_t autorep_vhf2_off
Auto repeater offset VHF2 index, 0-based, disabled=0xff.
Definition: d878uv_codeplug.hh:841
D878UVCodeplug::general_settings_base_t::KeyFunction
KeyFunction
All possible key functions.
Definition: d878uv_codeplug.hh:503
D878UVCodeplug::channel_t::_unused8
uint8_t _unused8
Unused, set to 0.
Definition: d878uv_codeplug.hh:309
D878UVCodeplug::D878UVCodeplug
D878UVCodeplug(QObject *parent=nullptr)
Empty constructor.
Definition: d878uv_codeplug.cc:1005
D878UVCodeplug::aprs_setting_t::lon_sec
uint8_t lon_sec
Longitude in seconds (1/100th of a minute).
Definition: d878uv_codeplug.hh:927
D878UVCodeplug::general_settings_base_t::display_mode
DisplayMode display_mode
Display channel or frequency, see DisplayMode, default channel=0x00.
Definition: d878uv_codeplug.hh:607
D878UVCodeplug::aprs_setting_t::lat_min
uint8_t lat_min
Latitude minutes.
Definition: d878uv_codeplug.hh:922
D878UVCodeplug::aprs_setting_t::ctcss
uint8_t ctcss
CTCSS tone-code, default=0.
Definition: d878uv_codeplug.hh:913
D878UVCodeplug::general_settings_base_t::enable_time_display
uint8_t enable_time_display
Show time on display, default on=0x01.
Definition: d878uv_codeplug.hh:697
RXGroupList
Generic representation of a RX group list.
Definition: rxgrouplist.hh:14
D878UVCodeplug::general_settings_base_t::talk_permit_tone
PermitTone talk_permit_tone
Enable talk permit, Off=0x00, Digi=0x01, Analog=0x02, Both=0x03.
Definition: d878uv_codeplug.hh:661
D878UVCodeplug::general_settings_base_t::PowerSave
PowerSave
Possible power-save modes.
Definition: d878uv_codeplug.hh:489
D878UVCodeplug::general_settings_base_t::vfo_b_ch_index
uint8_t vfo_b_ch_index
Default channel index (within selected zone) for VFO B, 0-based, default=0, 0xff=VFO.
Definition: d878uv_codeplug.hh:762
D878UVCodeplug::channel_t::_unused60
uint32_t _unused60
Unused, set to 0.
Definition: d878uv_codeplug.hh:399
D878UVCodeplug::general_settings_base_t::pri_zone_b
uint8_t pri_zone_b
Priority zone index VFO B, index of zone 0-based.
Definition: d878uv_codeplug.hh:715
D878UVCodeplug::general_settings_base_t::enable_pro_mode
uint8_t enable_pro_mode
Select amateur mode (0x00) or professional mode (0x01).
Definition: d878uv_codeplug.hh:664
D878UVCodeplug::general_settings_base_t::_unused00be_2
uint8_t _unused00be_2
Unused, set to 0.
Definition: d878uv_codeplug.hh:738
D878UVCodeplug::channel_t::channel_mode
uint8_t channel_mode
Mode: Analog or Digital, see Mode.
Definition: d878uv_codeplug.hh:306
D878UVCodeplug::general_settings_ext2_t::TalkerAliasDisplay
TalkerAliasDisplay
Talker alias display preference.
Definition: d878uv_codeplug.hh:819
D878UVCodeplug::general_settings_base_t::repchk_interval
uint8_t repchk_interval
Repeater range check interval in multiple of 5 seconds, 30s=0x05, 35s=0x06, default=30s.
Definition: d878uv_codeplug.hh:765
D878UVCodeplug::aprs_setting_t::prewave_delay
uint8_t prewave_delay
Prewave delay in 10ms steps.
Definition: d878uv_codeplug.hh:945
D878UVCodeplug::aprs_setting_t::_unknown0
uint8_t _unknown0
Unknown, set to 0x00.
Definition: d878uv_codeplug.hh:909
D878UVCodeplug::radio_info_t::enable_band_select
uint8_t enable_band_select
Enable band select.
Definition: d878uv_codeplug.hh:1202
D878UVCodeplug::aprs_setting_t::_unknown63
uint8_t _unknown63
Unknown, set to ff.
Definition: d878uv_codeplug.hh:950
D878UVCodeplug::general_settings_base_t::auto_shutdown
AutoShutdown auto_shutdown
Automatic shutdown timer, see AutoShutdown, default off=0x00.
Definition: d878uv_codeplug.hh:609
D878UVCodeplug::channel_t::rx_only
uint8_t rx_only
TX prohibit.
Definition: d878uv_codeplug.hh:318
D878UVCodeplug::channel_t::random_key
uint8_t random_key
Enable random key.
Definition: d878uv_codeplug.hh:396
D878UVCodeplug::general_settings_base_t::pf1_short
KeyFunction pf1_short
Programmable function key 1 short press function.
Definition: d878uv_codeplug.hh:624
D878UVCodeplug::general_settings_base_t::record_enable
uint8_t record_enable
Enable recording function, default off=0x00.
Definition: d878uv_codeplug.hh:644
D878UVCodeplug::channel_t::group_list_index
uint8_t group_list_index
RX group-list, 0xff=None, 0-based.
Definition: d878uv_codeplug.hh:353
D878UVCodeplug::general_settings_base_t::pf3_short
KeyFunction pf3_short
Programmable function key 3 short press function.
Definition: d878uv_codeplug.hh:626
D878UVCodeplug::radio_info_t::_unknown00
uint16_t _unknown00
Uknown informaion, usually 0x0000.
Definition: d878uv_codeplug.hh:1197
D878UVCodeplug::general_settings_base_t::_unused0071
uint8_t _unused0071
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:716
D878UVCodeplug::general_settings_base_t::startup_tone
uint8_t startup_tone
Enable Startup tone, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:669
D878UVCodeplug::general_settings_base_t::autorep_uhf1_min
uint32_t autorep_uhf1_min
Auto repeater UHF1 minimum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:751
D878UVCodeplug::general_settings_base_t::menu_exit_time
uint8_t menu_exit_time
Menu exit time in multiples of 5s + 5s offset.
Definition: d878uv_codeplug.hh:667
D878UVCodeplug::radio_info_t::enable_full_test
uint8_t enable_full_test
Enables full test mode. DO NOT SET, MAY BRICK DEVICE.
Definition: d878uv_codeplug.hh:1198
D878UVCodeplug::general_settings_base_t::vfo_a_ch_index
uint8_t vfo_a_ch_index
Default channel index (within selected zone) for VFO A, 0-based, default=0, 0xff=VFO.
Definition: d878uv_codeplug.hh:761
GPSSystem
This class represents a GPS signalling system within the codeplug.
Definition: gpssystem.hh:78
D878UVCodeplug::roaming_channel_t::colorcode
uint8_t colorcode
Colorcode 1-16.
Definition: d878uv_codeplug.hh:1105
D878UVCodeplug::channel_t::tx_offset
uint32_t tx_offset
TX Offset, 8 digits BCD, big-endian, sign in repeater_mode.
Definition: d878uv_codeplug.hh:303
D878UVCodeplug::channel_t::rx_gps
uint8_t rx_gps
Receive digital GPS messages.
Definition: d878uv_codeplug.hh:367
D878UVCodeplug::channel_t::_unused25_1
uint8_t _unused25_1
Unused, set to 0.
Definition: d878uv_codeplug.hh:341
D878UVCodeplug::general_settings_base_t::mute_delay
uint8_t mute_delay
Mute delay in minutes -1 [0,255].
Definition: d878uv_codeplug.hh:778
D878UVCodeplug::general_settings_base_t::ste_freq_no_sig
STEFrequency ste_freq_no_sig
STE when no signal.
Definition: d878uv_codeplug.hh:632
D878UVCodeplug::general_settings_base_t::power_on
PowerOnDisplay power_on
Power-on display, see PowerOnDisplay, default=PWRON_DEFAULT.
Definition: d878uv_codeplug.hh:612
D878UVCodeplug::general_settings_base_t::freq_step
FreqStep freq_step
VFO Frequency step, see FreqStep.
Definition: d878uv_codeplug.hh:614
D878UVCodeplug::general_settings_base_t::gps_unit
uint8_t gps_unit
GPS units Metric=0x00, Imperial=0x01.
Definition: d878uv_codeplug.hh:735
CodePlug::Flags
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition: codeplug.hh:23
D878UVCodeplug::channel_t::tone2_decode
uint8_t tone2_decode
2-Tone decode: 0x00=1, 0x0f=16
Definition: d878uv_codeplug.hh:330
D878UVCodeplug::channel_t::rx_ctcss
uint8_t rx_ctcss
CTCSS decode enable.
Definition: d878uv_codeplug.hh:313
D878UVCodeplug::channel_t::work_alone
uint8_t work_alone
Work alone, 0=off, 1=on.
Definition: d878uv_codeplug.hh:369
D878UVCodeplug::general_settings_base_t::pf3_long
KeyFunction pf3_long
Programmable function key 3 long press function.
Definition: d878uv_codeplug.hh:681
ScanList
Generic representation of a scan list.
Definition: scanlist.hh:12
D878UVCodeplug::aprs_setting_ext_t::rep_status
uint8_t rep_status
Report status flag.
Definition: d878uv_codeplug.hh:1025
D878UVCodeplug::general_settings_base_t::_unknown0040
uint8_t _unknown0040
Unknown settings, default set to 0x01;.
Definition: d878uv_codeplug.hh:678
D878UVCodeplug::general_settings_base_t::PermitTone
PermitTone
Permit tone combinations.
Definition: d878uv_codeplug.hh:573
CodeplugContext
Helper class to assemble radio config from binary codeplugs that use index-tables and bitmaps to spec...
Definition: codeplugcontext.hh:13
D878UVCodeplug::general_settings_base_t::disp_channel_number
uint8_t disp_channel_number
Display channel number, default on=0x01.
Definition: d878uv_codeplug.hh:730
D878UVCodeplug::aprs_setting_t::east_west
Hemisphere east_west
East or west flag, east=0, west=1.
Definition: d878uv_codeplug.hh:928
D878UVCodeplug::aprs_setting_t::fixed_location
uint8_t fixed_location
Fixed location data, 0=off, 1=on.
Definition: d878uv_codeplug.hh:920
D878UVCodeplug::general_settings_ext2_t::TalkerAliasEncoding
TalkerAliasEncoding
Talker alias encoding.
Definition: d878uv_codeplug.hh:825
D878UVCodeplug::channel_t::rx_dcs
uint8_t rx_dcs
DCS decode enable.
Definition: d878uv_codeplug.hh:314
D878UVCodeplug::decode
bool decode(Config *config)
Decodes the binary codeplug and stores its content in the given generic configuration.
Definition: d878uv_codeplug.cc:1089
D878UVCodeplug::general_settings_base_t::roam_enable
uint8_t roam_enable
Enable roaming, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:776
D878UVCodeplug::general_settings_base_t::p2_short
KeyFunction p2_short
P1 function key short press function.
Definition: d878uv_codeplug.hh:628
D878UVCodeplug::general_settings_base_t::fm_vfo_mode
uint8_t fm_vfo_mode
Enabled FM (broadcast) VFO mode, default channel mode=0x00.
Definition: d878uv_codeplug.hh:638
D878UVCodeplug::channel_t::call_confirm
uint8_t call_confirm
Call confirmation enable.
Definition: d878uv_codeplug.hh:319
D878UVCodeplug::general_settings_base_t::VFOScanType
VFOScanType
All possible scan types.
Definition: d878uv_codeplug.hh:496
D878UVCodeplug::general_settings_base_t::STEFrequency
STEFrequency
All possible STE frequencies.
Definition: d878uv_codeplug.hh:529
D878UVCodeplug::aprs_setting_t::_pad56
uint8_t _pad56
Pad-byte 0x00.
Definition: d878uv_codeplug.hh:938
D878UVCodeplug
Represents the device specific binary codeplug for Anytone AT-D878UV radios.
Definition: d878uv_codeplug.hh:216
D878UVCodeplug::general_settings_base_t::keytone
uint8_t keytone
Enable key tones, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:606
D878UVCodeplug::general_settings_base_t::vfo_b_zone_index
uint8_t vfo_b_zone_index
Index of default zone for VFO B, 0-based, default=0.
Definition: d878uv_codeplug.hh:760
D878UVCodeplug::channel_t::contact_index
uint32_t contact_index
Contact index, zero-based, little-endian.
Definition: d878uv_codeplug.hh:334
D878UVCodeplug::general_settings_base_t::BackLightDur
BackLightDur
Backlight durations.
Definition: d878uv_codeplug.hh:545
D878UVCodeplug::general_settings_base_t::vfo_scan_type
VFOScanType vfo_scan_type
Sets the VFO scan type.
Definition: d878uv_codeplug.hh:620
D878UVCodeplug::general_settings_base_t::roam_start_cond
uint8_t roam_start_cond
Auto roaming start condition, Periodic=0x00, Out-of-range=0x01.
Definition: d878uv_codeplug.hh:769
D878UVCodeplug::encryption_key_t::index
uint8_t index
Index/number of excryption key, off=0x00.
Definition: d878uv_codeplug.hh:1162
D878UVCodeplug::allocateForEncoding
void allocateForEncoding()
Allocate all code-plug elements that are defined through the common Config.
Definition: d878uv_codeplug.cc:1038
D878UVCodeplug::channel_t
Represents the actual channel encoded within the binary code-plug.
Definition: d878uv_codeplug.hh:226
D878UVCodeplug::channel_t::power
uint8_t power
Power: Low, Middle, High, Turbo, see Power.
Definition: d878uv_codeplug.hh:307
D878UVCodeplug::encodeGeneralSettings
bool encodeGeneralSettings(Config *config, const Flags &flags)
Encodes the general settings section.
Definition: d878uv_codeplug.cc:1197
D878UVCodeplug::aprs_setting_t::frequency
uint32_t frequency
TX frequency, BCD encoded, little endian in 10Hz.
Definition: d878uv_codeplug.hh:910
D878UVCodeplug::general_settings_base_t::_unused0035
uint8_t _unused0035
Unused set to 0x00.
Definition: d878uv_codeplug.hh:665
D878UVCodeplug::aprs_setting_t::auto_tx_interval
uint8_t auto_tx_interval
Global auto TX interval in multiples of 15s.
Definition: d878uv_codeplug.hh:916
DigitalContact::Type
Type
Possible call types for a contact.
Definition: contact.hh:110
D878UVCodeplug::general_settings_base_t::gps_sms_enable
uint8_t gps_sms_enable
Enable GPS SMS reporting, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:675
D878UVCodeplug::channel_t::dmr_encryption
uint8_t dmr_encryption
Digital encryption, 1-32, 0=off.
Definition: d878uv_codeplug.hh:394
D878UVCodeplug::channel_t::custom_ctcss
uint16_t custom_ctcss
Custom CTCSS tone frequency: 0x09cf=251.1, 0x0a28=260, big-endian.
Definition: d878uv_codeplug.hh:329
D878UVCodeplug::general_settings_base_t::sql_level_a
uint8_t sql_level_a
Squelch level VFO A [0,5], 0=off.
Definition: d878uv_codeplug.hh:615
D878UVCodeplug::channel_t::id_dtmf
uint8_t id_dtmf
DTMF ID, 0=1, 0x0f=16.
Definition: d878uv_codeplug.hh:356
D878UVCodeplug::general_settings_base_t::backlight_delay_tx
uint8_t backlight_delay_tx
Backlight delay during TX in seconds [0,30].
Definition: d878uv_codeplug.hh:770
D878UVCodeplug::channel_t::_unused25_2
uint8_t _unused25_2
Unused, set to 0.
Definition: d878uv_codeplug.hh:343
D878UVCodeplug::allocateUpdated
void allocateUpdated()
Allocate all code-plug elements that must be written back to the device to maintain a working codeplu...
Definition: d878uv_codeplug.cc:1023
D878UVCodeplug::aprs_setting_ext_t::rep_object
uint8_t rep_object
Report object flag.
Definition: d878uv_codeplug.hh:1020
D878UVCodeplug::channel_t::ctcss_transmit
uint8_t ctcss_transmit
TX CTCSS tone, 0=62.5, 50=254.1, 51=custom CTCSS tone.
Definition: d878uv_codeplug.hh:323
D878UVCodeplug::general_settings_base_t::current_zone_b
uint8_t current_zone_b
Zone index 0-based.
Definition: d878uv_codeplug.hh:642
D878UVCodeplug::setBitmaps
void setBitmaps(Config *config)
Sets all bitmaps for the given config.
Definition: d878uv_codeplug.cc:1053
D878UVCodeplug::general_settings_base_t::show_last_call_launch
uint8_t show_last_call_launch
Show last call on launch.
Definition: d878uv_codeplug.hh:747
D878UVCodeplug::radio_info_t
Encodes some information about the radio and firmware.
Definition: d878uv_codeplug.hh:1174
D878UVCodeplug::general_settings_base_t::maintain_call_ch
uint8_t maintain_call_ch
Call channel is maintained, default on=0x01.
Definition: d878uv_codeplug.hh:711
D878UVCodeplug::channel_t::slot2
uint8_t slot2
Timeslot, 0=TS1, 1=TS2.
Definition: d878uv_codeplug.hh:362
D878UVCodeplug::general_settings_base_t::backlight_dur
BackLightDur backlight_dur
Specifies backlight duration, see BackLightDur.
Definition: d878uv_codeplug.hh:649
D878UVCodeplug::general_settings_ext2_t::autorep_uhf2_max
uint32_t autorep_uhf2_max
Auto repeater UHF2 maximum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:846
D878UVCodeplug::general_settings_base_t::autorep_uhf1_off
uint8_t autorep_uhf1_off
Auto repeater offset UHF1 index, 0-based, disabled=0xff.
Definition: d878uv_codeplug.hh:708
D878UVCodeplug::channel_t::color_code
uint8_t color_code
Color code, 0-15.
Definition: d878uv_codeplug.hh:359
D878UVCodeplug::general_settings_base_t::timezone
uint8_t timezone
Time zone, GMT-12=0x00, GMT=0x0c, GMT+1=0x0d, GMT+13=0x19.
Definition: d878uv_codeplug.hh:660
D878UVCodeplug::allocateChannels
void allocateChannels()
Allocate channels from bitmap.
Definition: d878uv_codeplug.cc:1114
D878UVCodeplug::general_settings_base_t::standby_text_color
Color standby_text_color
Standby text color.
Definition: d878uv_codeplug.hh:745
D878UVCodeplug::channel_t::excl_from_roaming
uint8_t excl_from_roaming
Exclude channel from roaming, data ACK forbit in D868UV.
Definition: d878uv_codeplug.hh:381
D878UVCodeplug::aprs_setting_t::dcs
uint16_t dcs
DCS code, little endian, default=0x0013.
Definition: d878uv_codeplug.hh:914
D878UVCodeplug::general_settings_base_t::vox_level
uint8_t vox_level
Vox/BT level [1,3], 0=off.
Definition: d878uv_codeplug.hh:618
D878UVCodeplug::channel_t::_unused59_3
uint8_t _unused59_3
Unused, set to 0.
Definition: d878uv_codeplug.hh:398
D878UVCodeplug::general_settings_base_t::key_lock_knob
uint8_t key_lock_knob
Lock knowb.
Definition: d878uv_codeplug.hh:736
D878UVCodeplug::channel_t::id_2tone
uint8_t id_2tone
2-Tone ID, 0=1, 0x17=24.
Definition: d878uv_codeplug.hh:354
D878UVCodeplug::general_settings_base_t::gps_message_enable
uint8_t gps_message_enable
Enable GPS text message, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:699
D878UVCodeplug::general_settings_base_t::current_zone_a
uint8_t current_zone_a
Zone index 0-based.
Definition: d878uv_codeplug.hh:639
D878UVCodeplug::channel_t::_unused52_4
uint8_t _unused52_4
Unused, set to 0.
Definition: d878uv_codeplug.hh:383
D878UVCodeplug::general_settings_base_t::standby_img_color
Color standby_img_color
Standby background image color.
Definition: d878uv_codeplug.hh:746
D878UVCodeplug::general_settings_base_t::p1_long
KeyFunction p1_long
P1 function key long press function.
Definition: d878uv_codeplug.hh:682
D878UVCodeplug::channel_t::aes_encryption
uint8_t aes_encryption
Digital AES encryption, 1-32, 0=off.
Definition: d878uv_codeplug.hh:372
D878UVCodeplug::general_settings_base_t::DisplayMode
DisplayMode
Possible display modes.
Definition: d878uv_codeplug.hh:456
D878UVCodeplug::general_settings_base_t::roam_wait
uint8_t roam_wait
Auto roaming wait time in seconds off=0x00, 1s=0x01, 30s=0x1e, default=off.
Definition: d878uv_codeplug.hh:742
D878UVCodeplug::general_settings_base_t::_unknown00d6
uint8_t _unknown00d6
Unused set to 0x00.
Definition: d878uv_codeplug.hh:757
D878UVCodeplug::general_settings_base_t::STEType
STEType
All possible STE types.
Definition: d878uv_codeplug.hh:520
D878UVCodeplug::channel_t::tx_permit
uint8_t tx_permit
TX permit, see Admit.
Definition: d878uv_codeplug.hh:346
D878UVCodeplug::general_settings_base_t::_unused00e8
uint8_t _unused00e8
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:777
D878UVCodeplug::general_settings_base_t::record_delay
uint8_t record_delay
Record delay in multiple of 0.2 seconds.
Definition: d878uv_codeplug.hh:723
D878UVCodeplug::createChannels
bool createChannels(Config *config, CodeplugContext &ctx)
Create channels from codeplug.
Definition: d878uv_codeplug.cc:1152
D878UVCodeplug::aprs_setting_t::table
char table
ASCII-char for APRS icon table, ie.
Definition: d878uv_codeplug.hh:941
D878UVCodeplug::general_settings_base_t::disp_contact
uint8_t disp_contact
Display current contact, default on=0x01.
Definition: d878uv_codeplug.hh:731
D878UVCodeplug::createRoaming
virtual bool createRoaming(Config *config, CodeplugContext &ctx)
Creates roaming channels and zones from codeplug.
Definition: d878uv_codeplug.cc:1360
D878UVCodeplug::general_settings_base_t::startup_reset
uint8_t startup_reset
Startup reset.
Definition: d878uv_codeplug.hh:781
D878UVCodeplug::channel_t::sms_forbid
uint8_t sms_forbid
Forbit SMS tramsission.
Definition: d878uv_codeplug.hh:397
D878UVCodeplug::encodeRoaming
virtual bool encodeRoaming(Config *config, const Flags &flags)
Encodes the roaming channels and zones.
Definition: d878uv_codeplug.cc:1330
D878UVCodeplug::general_settings_base_t::_unused0021
uint8_t _unused0021
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:643
D878UVCodeplug::channel_t::_unused53
uint8_t _unused53
Unused, set to 0.
Definition: d878uv_codeplug.hh:387
D878UVCodeplug::aprs_rx_entry_t
Represents an APRS RX entry.
Definition: d878uv_codeplug.hh:1041
D878UVCodeplug::aprs_setting_ext_t::rep_mic_e
uint8_t rep_mic_e
Report MIC-E flag.
Definition: d878uv_codeplug.hh:1019
D878UVCodeplug::channel_t::ranging
uint8_t ranging
Ranging enabled.
Definition: d878uv_codeplug.hh:379
D878UVCodeplug::channel_t::data_ack_disable
uint8_t data_ack_disable
Data ACK disable.
Definition: d878uv_codeplug.hh:382
D878UVCodeplug::channel_t::aprs_report
uint8_t aprs_report
Enable APRS report, see APRSReport.
Definition: d878uv_codeplug.hh:386
D878UVCodeplug::general_settings_base_t::vox_source
VOXSource vox_source
Specifies the VOX source, default external = 0x01.
Definition: d878uv_codeplug.hh:663
D878UVCodeplug::general_settings_base_t::pwron_passwd
uint8_t pwron_passwd
Boot password enabled, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:613
D878UVCodeplug::general_settings_base_t::Color
Color
Text and background colors.
Definition: d878uv_codeplug.hh:588
D878UVCodeplug::general_settings_base_t::max_hp_volume
uint8_t max_hp_volume
Maximum headphone volume, value in [0,8], default 0.
Definition: d878uv_codeplug.hh:698
D878UVCodeplug::aprs_setting_t::sig_type
SignalingType sig_type
Signalling type, 0=off, 1=ctcss, 2=dcs, default=off.
Definition: d878uv_codeplug.hh:912
D878UVCodeplug::general_settings_base_t::_unknown00d5
uint8_t _unknown00d5
Unknown setting.
Definition: d878uv_codeplug.hh:756
D878UVCodeplug::general_settings_base_t::filter_own_missed
uint8_t filter_own_missed
Enable filter own ID in missed calls, default off=0x00.
Definition: d878uv_codeplug.hh:668
D878UVCodeplug::general_settings_base_t::keep_last_caller
uint8_t keep_last_caller
Keep last caller on channel switch, default off=0x00.
Definition: d878uv_codeplug.hh:772
D878UVCodeplug::channel_t::gps_system
uint8_t gps_system
Index of DMR GPS report system, 0-7;.
Definition: d878uv_codeplug.hh:392
D878UVCodeplug::general_settings_base_t::vfo_scan_uhf_start
uint32_t vfo_scan_uhf_start
Start frequency of UHF VFO scan, in multiples of 10Hz, little-endian.
Definition: d878uv_codeplug.hh:702
D878UVCodeplug::general_settings_base_t::_unknown002a
uint8_t _unknown002a
Unknown, set to 0x01.
Definition: d878uv_codeplug.hh:652
D878UVCodeplug::radio_info_t::_unknown17
uint16_t _unknown17
Unknown information usually 0x0001 LE.
Definition: d878uv_codeplug.hh:1208
APRSSystem::Icon
Icon
All implemented APRS icons.
Definition: gpssystem.hh:155
D878UVCodeplug::general_settings_base_t::privcall_hang_time
uint8_t privcall_hang_time
Private call hang time [1,30] = 1..30s, 0x1f=30min, 0x20=infinite.
Definition: d878uv_codeplug.hh:634
DigitalContact
Represents a digital contact, that is a DMR number.
Definition: contact.hh:99
D878UVCodeplug::general_settings_base_t::remote_monitor
uint8_t remote_monitor
Enable remote monitor, default off = 0x00.
Definition: d878uv_codeplug.hh:674
D878UVCodeplug::general_settings_base_t::man_down_delay
uint8_t man_down_delay
Man down alarm delay in seconds [0,255].
Definition: d878uv_codeplug.hh:693
D878UVCodeplug::gps_systems_t
Represents the 8 GPS systems within the binary codeplug.
Definition: d878uv_codeplug.hh:1052
D878UVCodeplug::aprs_setting_t::tx_delay
uint8_t tx_delay
TX delay, multiples of 20ms, default=1200ms.
Definition: d878uv_codeplug.hh:911
D878UVCodeplug::roaming_channel_t
Implements the binary representation of a roaming channel within the codeplug.
Definition: d878uv_codeplug.hh:1102
D878UVCodeplug::general_settings_base_t::enh_mic_sound
uint8_t enh_mic_sound
Enhanced mic sound quality, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:701
D878UVCodeplug::channel_t::reverse
uint8_t reverse
CTCSS phase-reversal.
Definition: d878uv_codeplug.hh:317
D878UVCodeplug::channel_t::id_5tone
uint8_t id_5tone
5-Tone ID, 0=1, 0x63=100.
Definition: d878uv_codeplug.hh:355
D878UVCodeplug::channel_t::_unused33_2
uint8_t _unused33_2
Unused, set to 0.
Definition: d878uv_codeplug.hh:365
D878UVCodeplug::general_settings_base_t::backlight_delay_rx
uint8_t backlight_delay_rx
Backlight delay during RX in seconds always=0x00.
Definition: d878uv_codeplug.hh:775
D878UVCodeplug::general_settings_base_t::enable_man_down
uint8_t enable_man_down
Enable man down alarm, default off=0x00.
Definition: d878uv_codeplug.hh:646
D878UVCodeplug::roaming_channel_t::rx_frequency
uint32_t rx_frequency
RX frequency 8-digit BCD big-endian as MMMkkkHH.
Definition: d878uv_codeplug.hh:1103
D878UVCodeplug::roaming_channel_t::tx_frequency
uint32_t tx_frequency
TX frequency 8-digit BCD big-endian as MMMkkkHH.
Definition: d878uv_codeplug.hh:1104
D878UVCodeplug::general_settings_base_t::call_disp_mode
uint8_t call_disp_mode
Call display mode, off=0x00, 0x01=call sign, 0x02=name.
Definition: d878uv_codeplug.hh:724
APRSSystem
Represents an APRS system wihtin the generic config.
Definition: gpssystem.hh:137
D878UVCodeplug::aprs_setting_t::lon_deg
uint8_t lon_deg
Longitude in degree.
Definition: d878uv_codeplug.hh:925
D878UVCodeplug::gps_systems_t::rep_act_delay
uint8_t rep_act_delay
Repeater activation delay in multiples of 100ms.
Definition: d878uv_codeplug.hh:1062
D878UVCodeplug::general_settings_base_t::digi_mon_cc
uint8_t digi_mon_cc
Digital monitor match color code, default any=0x00, match=0x01.
Definition: d878uv_codeplug.hh:688
D878UVCodeplug::general_settings_base_t::ste_type
STEType ste_type
STE type of CTCSS.
Definition: d878uv_codeplug.hh:631
D878UVCodeplug::general_settings_base_t::pf2_long
KeyFunction pf2_long
Programmable function key 2 long press function.
Definition: d878uv_codeplug.hh:680
D878UVCodeplug::aprs_setting_ext_t::fixed_altitude
uint16_t fixed_altitude
Fixed altitude in feet, little endian.
Definition: d878uv_codeplug.hh:1017
D878UVCodeplug::general_settings_base_t::prewave_time
uint8_t prewave_time
Prewave delay in multiples of 20ms, values [0,50].
Definition: d878uv_codeplug.hh:635
D878UVCodeplug::general_settings_base_t::grpcall_hang_time
uint8_t grpcall_hang_time
Group call hang time [1,30] = 1..30s, 0x1f=30min, 0x20=infinite.
Definition: d878uv_codeplug.hh:633
Signaling::Code
Code
This huge enum lists all possible RX/TX tones that can be associated with analog channels.
Definition: signaling.hh:14
D878UVCodeplug::general_settings_base_t::call_alert
uint8_t call_alert
Enable call tone, default=1, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:657
D878UVCodeplug::general_settings_base_t::TBSTFrequency
TBSTFrequency
TBST (open repeater) frequencies.
Definition: d878uv_codeplug.hh:565
D878UVCodeplug::encryption_key_t
Represents an encryption key.
Definition: d878uv_codeplug.hh:1161
D878UVCodeplug::general_settings_base_t::p2_long
KeyFunction p2_long
P1 function key long press function.
Definition: d878uv_codeplug.hh:683
D878UVCodeplug::aprs_setting_t::SignalingType
SignalingType
Possible signalling for APRS repeater.
Definition: d878uv_codeplug.hh:886
D878UVCodeplug::general_settings_base_t::remote_stun
uint8_t remote_stun
Enable remote stun and kill, default off=0x00.
Definition: d878uv_codeplug.hh:672
D878UVCodeplug::general_settings_base_t::fm_channel_index
uint8_t fm_channel_index
Index of current FM channel, 0-based.
Definition: d878uv_codeplug.hh:637
D878UVCodeplug::general_settings_base_t::autorep_vfo_a
uint8_t autorep_vfo_a
Auto repeater offset direction VFO A, Off=0x00, positive=0x01, negative=0x02, default=off.
Definition: d878uv_codeplug.hh:686
D878UVCodeplug::general_settings_base_t::gps_enable
uint8_t gps_enable
Enable GPS, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:650
D878UVCodeplug::general_settings_base_t::FreqStep
FreqStep
Possible VFO frequency steps.
Definition: d878uv_codeplug.hh:477
D878UVCodeplug::general_settings_base_t::digi_mon_id
uint8_t digi_mon_id
Digital monitor match ID, default any=0x00, match=0x01.
Definition: d878uv_codeplug.hh:689
D878UVCodeplug::channel_t::squelch_mode
uint8_t squelch_mode
Squelch mode, see SquelchMode.
Definition: d878uv_codeplug.hh:342
D878UVCodeplug::general_settings_base_t::key_lock_forced
uint8_t key_lock_forced
Forced lock.
Definition: d878uv_codeplug.hh:740
D878UVCodeplug::allocateForDecoding
void allocateForDecoding()
Allocate all code-plug elements that must be downloaded for decoding.
Definition: d878uv_codeplug.cc:1045
D878UVCodeplug::general_settings_base_t::max_sp_volume
uint8_t max_sp_volume
Maximum speaker volume, value in [1,8], default 5.
Definition: d878uv_codeplug.hh:671
D878UVCodeplug::general_settings_ext2_t::autorep_vhf2_min
uint32_t autorep_vhf2_min
Auto repeater VHF2 minimum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:842
D878UVCodeplug::general_settings_base_t::repchk_num_notify
uint8_t repchk_num_notify
Number of repeater out-of-range notifications, 1=0x00, 2=0x01, 3=0x02, 10=0x0b, default=3.
Definition: d878uv_codeplug.hh:779
D878UVCodeplug::general_settings_base_t::boot_ch
uint8_t boot_ch
Enable default channel on boot, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:758
D878UVCodeplug::general_settings_base_t::separate_display
uint8_t separate_display
Separate display default off=0x00.
Definition: d878uv_codeplug.hh:771
D878UVCodeplug::general_settings_base_t::Language
Language
Possible UI languages.
Definition: d878uv_codeplug.hh:471
D878UVCodeplug::general_settings_ext2_t::ta_display
TalkerAliasDisplay ta_display
Talker alias display priority, see TalkerAliasDisplay.
Definition: d878uv_codeplug.hh:836
D878UVCodeplug::clear
void clear()
Clears and resets the complete codeplug to some default values.
Definition: d878uv_codeplug.cc:1018
D868UVCodeplug
Represents the device specific binary codeplug for Anytone AT-D868UV radios.
Definition: d868uv_codeplug.hh:173
D878UVCodeplug::general_settings_base_t::PowerOnDisplay
PowerOnDisplay
Possible power-on display settings.
Definition: d878uv_codeplug.hh:449
DigitalChannel
Extension to the Channel class to implement an digital (DMR) channel.
Definition: channel.hh:269
D878UVCodeplug::general_settings_base_t::SMSFormat
SMSFormat
SMS formats.
Definition: d878uv_codeplug.hh:599
D878UVCodeplug::general_settings_ext2_t::autorep_vfh2_max
uint32_t autorep_vfh2_max
Auto repeater VHF2 maximum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:843
D878UVCodeplug::general_settings_base_t::sms_format
SMSFormat sms_format
SMS format.
Definition: d878uv_codeplug.hh:748
D878UVCodeplug::radio_info_t::FrequencyRange
FrequencyRange
Possible frequency ranges for the AT-D878UV.
Definition: d878uv_codeplug.hh:1176
D878UVCodeplug::general_settings_base_t::vfo_scan_vhf_stop
uint32_t vfo_scan_vhf_stop
End frequency of VHF VFO scan, in multiples of 10Hz, little-endian.
Definition: d878uv_codeplug.hh:707
D878UVCodeplug::linkGPSSystems
bool linkGPSSystems(Config *config, CodeplugContext &ctx)
Link GPS systems.
Definition: d878uv_codeplug.cc:1275
D878UVCodeplug::aprs_setting_t::lat_deg
uint8_t lat_deg
Latitude in degree.
Definition: d878uv_codeplug.hh:921
D878UVCodeplug::general_settings_base_t::autorep_vfo_b
uint8_t autorep_vfo_b
Auto repeater offset direction VFO B, Off=0x00, positive=0x01, negative=0x02, default=off.
Definition: d878uv_codeplug.hh:755
D878UVCodeplug::general_settings_base_t::key_lock_sidekey
uint8_t key_lock_sidekey
Lock side keys.
Definition: d878uv_codeplug.hh:739
D878UVCodeplug::roaming_zone_t
Represents a roaming zone within the binary codeplug.
Definition: d878uv_codeplug.hh:1141
D878UVCodeplug::general_settings_base_t::repchk_recon
uint8_t repchk_recon
Number of reconnections 3=0x00, 4=0x01, 5=0x02, default=5.
Definition: d878uv_codeplug.hh:766
D878UVCodeplug::aprs_setting_ext_t::rep_item
uint8_t rep_item
Report item flag.
Definition: d878uv_codeplug.hh:1021
D878UVCodeplug::createGPSSystems
bool createGPSSystems(Config *config, CodeplugContext &ctx)
Create GPS systems from codeplug.
Definition: d878uv_codeplug.cc:1244
D878UVCodeplug::aprs_setting_ext_t::rep_message
uint8_t rep_message
Report message flag.
Definition: d878uv_codeplug.hh:1022
D878UVCodeplug::channel_t::scan_list_index
uint8_t scan_list_index
Scan list index, 0xff=None, 0-based.
Definition: d878uv_codeplug.hh:352
D878UVCodeplug::aprs_setting_t::to_ssid
uint8_t to_ssid
Destination SSID, 0xff=None.
Definition: d878uv_codeplug.hh:931
D878UVCodeplug::general_settings_base_t::vfo_scan_uhf_stop
uint32_t vfo_scan_uhf_stop
End frequency of UHF VFO scan, in multiples of 10Hz, little-endian.
Definition: d878uv_codeplug.hh:703
D878UVCodeplug::aprs_setting_t
Represents the APRS settings within the binary codeplug.
Definition: d878uv_codeplug.hh:884
D878UVCodeplug::general_settings_base_t::mon_slot_hold
uint8_t mon_slot_hold
Digital monitor slot hold, default off=0x00.
Definition: d878uv_codeplug.hh:690
D878UVCodeplug::general_settings_base_t::pf1_long
KeyFunction pf1_long
Programmable function key 1 long press function.
Definition: d878uv_codeplug.hh:679
D878UVCodeplug::general_settings_base_t::enable_sub_ch_mode
uint8_t enable_sub_ch_mode
Enable sub-channel mode, default off=0x00.
Definition: d878uv_codeplug.hh:655
D878UVCodeplug::aprs_setting_t::north_south
Hemisphere north_south
North or south flag, north=0, south=1.
Definition: d878uv_codeplug.hh:924
D878UVCodeplug::aprs_rx_entry_t::enabled
uint8_t enabled
Enabled entry 0x01=on, 0x00=off.
Definition: d878uv_codeplug.hh:1042
D878UVCodeplug::channel_t::through_mode
uint8_t through_mode
Through-mode enabled.
Definition: d878uv_codeplug.hh:380
D878UVCodeplug::general_settings_base_t::enable_idle_tone
uint8_t enable_idle_tone
Enable digi-call idle tone, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:662
D878UVCodeplug::encryption_key_t::_unused34
uint8_t _unused34
Unused, set to 0x00;.
Definition: d878uv_codeplug.hh:1164
D878UVCodeplug::linkChannels
bool linkChannels(Config *config, CodeplugContext &ctx)
Link channels.
Definition: d878uv_codeplug.cc:1170
D878UVCodeplug::channel_t::_unused19
uint8_t _unused19
Unused, set to 0.
Definition: d878uv_codeplug.hh:331
D878UVCodeplug::general_settings_base_t::auto_keylock
uint8_t auto_keylock
Enables auto key-lock.
Definition: d878uv_codeplug.hh:608
D878UVCodeplug::general_settings_base_t::sql_level_b
uint8_t sql_level_b
Squelch level VFO B [0,5], 0=off.
Definition: d878uv_codeplug.hh:616
D878UVCodeplug::channel_t::sms_confirm
uint8_t sms_confirm
Send SMS confirmation, 0=off, 1=on.
Definition: d878uv_codeplug.hh:363
D878UVCodeplug::gps_systems_t::roaming_support
uint8_t roaming_support
Roaming support. 0=off, 1=on.
Definition: d878uv_codeplug.hh:1060
Config
The config class, representing the codeplug configuration.
Definition: config.hh:36
D878UVCodeplug::channel_t::repeater_mode
uint8_t repeater_mode
Sign of TX frequency offset, see RepeaterMode.
Definition: d878uv_codeplug.hh:310
D878UVCodeplug::channel_t::analog_aprs_ptt
uint8_t analog_aprs_ptt
Enable analog APRS PTT, see APRSPTT, not used in D868UV.
Definition: d878uv_codeplug.hh:390
D878UVCodeplug::general_settings_ext2_t
General settings extension 2.
Definition: d878uv_codeplug.hh:817
D878UVCodeplug::general_settings_base_t::pf2_short
KeyFunction pf2_short
Programmable function key 2 short press function.
Definition: d878uv_codeplug.hh:625
D878UVCodeplug::decodeGeneralSettings
bool decodeGeneralSettings(Config *config)
Decodes the general settings section.
Definition: d878uv_codeplug.cc:1204
D878UVCodeplug::general_settings_base_t::display_brightness
uint8_t display_brightness
Display brightness value [0,4].
Definition: d878uv_codeplug.hh:648
D878UVCodeplug::general_settings_base_t::vfo_mode_a
uint8_t vfo_mode_a
Enables VFO mode for VFO A, default memory mode = 0x00.
Definition: d878uv_codeplug.hh:629
D878UVCodeplug::general_settings_base_t::ch_idle_tone
uint8_t ch_idle_tone
Enable channel idle tone, Off=0x00, On=0x01.
Definition: d878uv_codeplug.hh:666
D878UVCodeplug::channel_t::ctcss_receive
uint8_t ctcss_receive
RX CTCSS tone: 0=62.5, 50=254.1, 51=custom CTCSS tone.
Definition: d878uv_codeplug.hh:324
D878UVCodeplug::general_settings_base_t::roam_period
uint8_t roam_period
Auto roaming period in minutes -1, 1min=0x00, 2m=0x01, 256min=0xff, default=1min.
Definition: d878uv_codeplug.hh:732
D878UVCodeplug::channel_t::tdma_adaptive
uint8_t tdma_adaptive
TDMA adaptive enable.
Definition: d878uv_codeplug.hh:366
D878UVCodeplug::general_settings_base_t::_unused003d
uint8_t _unused003d
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:673
D878UVCodeplug::general_settings_base_t::key_lock_keyboard
uint8_t key_lock_keyboard
Lock keyboard.
Definition: d878uv_codeplug.hh:737
D878UVCodeplug::general_settings_base_t::gps_sms_interval
uint8_t gps_sms_interval
GPS ranging SMS interval in seconds [5,255], default=5.
Definition: d878uv_codeplug.hh:728
D878UVCodeplug::general_settings_base_t::wake_head_period
uint8_t wake_head_period
Wake head period in multiples of 20ms, values [0,50].
Definition: d878uv_codeplug.hh:636
D878UVCodeplug::general_settings_base_t::enable_sms_alert
uint8_t enable_sms_alert
Enables SMS alert, default Off=0x00.
Definition: d878uv_codeplug.hh:651
RoamingZone
Represents a RoamingZone within the abstract device configuration.
Definition: roaming.hh:14
D878UVCodeplug::general_settings_base_t::repchk_notify
uint8_t repchk_notify
Repeater range check notification Off=0x00, Beep=0x01, Voice=0x02, default=Voice.
Definition: d878uv_codeplug.hh:774
D878UVCodeplug::channel_t::enh_encryption
uint8_t enh_encryption
Enable enhanced encryption.
Definition: d878uv_codeplug.hh:368
D878UVCodeplug::general_settings_ext2_t::ta_enc
TalkerAliasEncoding ta_enc
Talker alias encoding, see TalkerAliasEncoding.
Definition: d878uv_codeplug.hh:837
D878UVCodeplug::encode
bool encode(Config *config, const Flags &flags=Flags())
Encodes the given generic configuration as a binary codeplug.
Definition: d878uv_codeplug.cc:1076
D878UVCodeplug::general_settings_base_t::_unused003e
uint8_t _unused003e
Unused, set to 0x00.
Definition: d878uv_codeplug.hh:692
D878UVCodeplug::general_settings_base_t::main_ch_set_b
uint8_t main_ch_set_b
Set main channel is B, A if 0x00.
Definition: d878uv_codeplug.hh:654
D878UVCodeplug::allocateGPSSystems
void allocateGPSSystems()
Allocates GPS settings memory section.
Definition: d878uv_codeplug.cc:1210
D878UVCodeplug::channel_t::id_index
uint8_t id_index
Index to radio ID table.
Definition: d878uv_codeplug.hh:337
D878UVCodeplug::general_settings_base_t::_unknown00be_5
uint8_t _unknown00be_5
Unused, set to 0.
Definition: d878uv_codeplug.hh:741
D878UVCodeplug::general_settings_base_t::VOXSource
VOXSource
VOX sources.
Definition: d878uv_codeplug.hh:581
D878UVCodeplug::linkRoaming
virtual bool linkRoaming(Config *config, CodeplugContext &ctx)
Links roaming channels and zones.
Definition: d878uv_codeplug.cc:1393
D878UVCodeplug::aprs_setting_ext_t::_unused0009_1
uint8_t _unused0009_1
Unused set to 0.
Definition: d878uv_codeplug.hh:1027
D878UVCodeplug::general_settings_base_t::show_volume_change
uint8_t show_volume_change
Display volume change promt.
Definition: d878uv_codeplug.hh:685
D878UVCodeplug::general_settings_ext2_t::autorep_uhf2_off
uint8_t autorep_uhf2_off
Auto repeater offset UHF2 index, 0-based, disabled=0xff.
Definition: d878uv_codeplug.hh:840
D878UVCodeplug::channel_t::tx_ctcss
uint8_t tx_ctcss
CTCSS encode enable.
Definition: d878uv_codeplug.hh:315
D878UVCodeplug::general_settings_base_t::channel_name_color
Color channel_name_color
Color of channel name.
Definition: d878uv_codeplug.hh:773
DigitalChannel::TimeSlot
TimeSlot
Possible timeslots for digital channels.
Definition: channel.hh:300
D878UVCodeplug::encryption_key_t::_unknown35
uint8_t _unknown35
Fixed to 0x40.
Definition: d878uv_codeplug.hh:1165
D878UVCodeplug::general_settings_base_t::analog_call_hold
uint8_t analog_call_hold
Analog call hold time in seconds [0,30].
Definition: d878uv_codeplug.hh:696
D878UVCodeplug::channel_t::dcs_receive
uint16_t dcs_receive
RX DCS code: 0=D000N, 511=D777N, 512=D000I, 1023=D777I, DCS code-number in octal, little-endian.
Definition: d878uv_codeplug.hh:326
D878UVCodeplug::channel_t::simplex_tdma
uint8_t simplex_tdma
Simplex TDMA enabled.
Definition: d878uv_codeplug.hh:364
D878UVCodeplug::general_settings_base_t::vfo_mode_b
uint8_t vfo_mode_b
Enables VFO mode for VFO B, default memory mode = 0x00.
Definition: d878uv_codeplug.hh:630
D878UVCodeplug::general_settings_base_t::p1_short
KeyFunction p1_short
P1 function key short press function.
Definition: d878uv_codeplug.hh:627
D878UVCodeplug::channel_t::freq_correction
int8_t freq_correction
Signed int in 10Hz.
Definition: d878uv_codeplug.hh:393
D878UVCodeplug::aprs_setting_ext_t::rep_nmea
uint8_t rep_nmea
NMEA report flag.
Definition: d878uv_codeplug.hh:1024
D878UVCodeplug::aprs_setting_t::manual_tx_interval
uint8_t manual_tx_interval
Global manual TX intervals in seconds.
Definition: d878uv_codeplug.hh:915
D878UVCodeplug::aprs_setting_t::from_ssid
uint8_t from_ssid
Source SSID, 0xff=None.
Definition: d878uv_codeplug.hh:934
D878UVCodeplug::general_settings_base_t::dtmf_duration
DTMFDuration dtmf_duration
DTMF transmit duration.
Definition: d878uv_codeplug.hh:645
D878UVCodeplug::general_settings_base_t::callsign_color
Color callsign_color
Call sign display color.
Definition: d878uv_codeplug.hh:734
D878UVCodeplug::allocateGeneralSettings
void allocateGeneralSettings()
Allocates general settings memory section.
Definition: d878uv_codeplug.cc:1189
D878UVCodeplug::aprs_rx_entry_t::ssid
uint8_t ssid
SSID [0,15], 16=off.
Definition: d878uv_codeplug.hh:1044
D878UVCodeplug::aprs_setting_t::lon_min
uint8_t lon_min
Longitude in minutes.
Definition: d878uv_codeplug.hh:926
D878UVCodeplug::general_settings_base_t::digi_mon_slot
uint8_t digi_mon_slot
Digital monitor slot, default off=0x00, single slot=0x01, both slots=0x02.
Definition: d878uv_codeplug.hh:687
D878UVCodeplug::radio_info_t::_unknown0f
uint8_t _unknown0f
Unknown information usually 0xff.
Definition: d878uv_codeplug.hh:1205
D878UVCodeplug::general_settings_base_t::autorep_uhf1_max
uint32_t autorep_uhf1_max
Auto repeater UHF1 maximum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:754
D878UVCodeplug::general_settings_base_t::vox_delay
uint8_t vox_delay
Delay in 0.1s steps + 0.5s offset, value [0, 25].
Definition: d878uv_codeplug.hh:619
Channel::Power
Power
Possible power settings.
Definition: channel.hh:48
D878UVCodeplug::channel_t::rx_frequency
uint32_t rx_frequency
RX Frequency, 8 digits BCD, big-endian.
Definition: d878uv_codeplug.hh:302
D878UVCodeplug::general_settings_base_t::vfo_scan_vhf_start
uint32_t vfo_scan_vhf_start
Start frequency of VHF VFO scan, in multiples of 10Hz, little-endian.
Definition: d878uv_codeplug.hh:706
D878UVCodeplug::aprs_setting_ext_t::rep_other
uint8_t rep_other
Report "other" flag.
Definition: d878uv_codeplug.hh:1026
D878UVCodeplug::general_settings_base_t::vfo_a_zone_index
uint8_t vfo_a_zone_index
Index of default zone for VFO A, 0-based, default=0.
Definition: d878uv_codeplug.hh:759
D878UVCodeplug::general_settings_base_t::tbst_frequency
TBSTFrequency tbst_frequency
Sets the TBST frquency.
Definition: d878uv_codeplug.hh:656
D878UVCodeplug::aprs_setting_t::_unknown61
uint8_t _unknown61
Unknown, set to 01.
Definition: d878uv_codeplug.hh:948
D878UVCodeplug::channel_t::ptt_id
uint8_t ptt_id
PTT ID, see PTTId, unused in U868UV.
Definition: d878uv_codeplug.hh:340
D878UVCodeplug::general_settings_base_t::autorep_vhf1_max
uint32_t autorep_vhf1_max
Auto repeater VHF1 maximum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:750
D878UVCodeplug::radio_info_t::freq_range
FrequencyRange freq_range
Specifies the frequency range of the radio.
Definition: d878uv_codeplug.hh:1199
D878UVCodeplug::channel_t::multiple_keys
uint8_t multiple_keys
Enable multiple keys.
Definition: d878uv_codeplug.hh:395
D878UVCodeplug::general_settings_ext2_t::_unknown0034
uint8_t _unknown0034
Unknown.
Definition: d878uv_codeplug.hh:847
D878UVCodeplug::channel_t::_unused26_2
uint8_t _unused26_2
Unused, set to 0.
Definition: d878uv_codeplug.hh:349
D878UVCodeplug::aprs_setting_t::lat_sec
uint8_t lat_sec
Latitude seconds (1/100th of a minute).
Definition: d878uv_codeplug.hh:923
D878UVCodeplug::general_settings_base_t::long_key_time
uint8_t long_key_time
Specifies the long-press time in seconds + 1s offset, value in [0,4].
Definition: d878uv_codeplug.hh:684
D878UVCodeplug::encodeGPSSystems
bool encodeGPSSystems(Config *config, const Flags &flags)
Encodes the GPS settings section.
Definition: d878uv_codeplug.cc:1220
D878UVCodeplug::aprs_setting_t::Hemisphere
Hemisphere
Hemisphere settings for the fixed location beacon.
Definition: d878uv_codeplug.hh:901
D878UVCodeplug::radio_info_t::enable_internat
uint8_t enable_internat
None Chinese?!?
Definition: d878uv_codeplug.hh:1200
D878UVCodeplug::general_settings_base_t::show_last_caller
uint8_t show_last_caller
Show last caller, off=0x00, show ID=0x01, show call sign=0x02, show both=0x03.
Definition: d878uv_codeplug.hh:691
D878UVCodeplug::general_settings_base_t::call_end_box
uint8_t call_end_box
Show call end prompt box, default off=0x00.
Definition: d878uv_codeplug.hh:670
D878UVCodeplug::general_settings_base_t::pri_zone_a
uint8_t pri_zone_a
Priority zone index VFO A, index of zone 0-based.
Definition: d878uv_codeplug.hh:712
D878UVCodeplug::channel_t::_pad51
uint8_t _pad51
Pad byte, set to 0.
Definition: d878uv_codeplug.hh:376
D878UVCodeplug::general_settings_ext2_t::autorep_uhf2_min
uint32_t autorep_uhf2_min
Auto repeater UHF2 minimum frequency, in 10Hz, little endian.
Definition: d878uv_codeplug.hh:844
D878UVCodeplug::general_settings_base_t::DTMFDuration
DTMFDuration
DTMF signalling durations.
Definition: d878uv_codeplug.hh:536
Zone
Represents a zone within the generic configuration.
Definition: zone.hh:14
D878UVCodeplug::general_settings_base_t::mic_gain
uint8_t mic_gain
Microphone gain value in [0,4], default 2.
Definition: d878uv_codeplug.hh:621