mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-06-20 06:58:39 +03:00
fix dual watch bug + other stuff
This commit is contained in:
484
settings.h
484
settings.h
@ -123,13 +123,6 @@ typedef enum mdf_display_mode_e mdf_display_mode_t;
|
||||
|
||||
// ************************************************
|
||||
// this is the full eeprom structure, both config and calibration areas
|
||||
//
|
||||
// am going to use this to replace ALL the currently scattered values
|
||||
//
|
||||
// this will also make AIRCOPY safe as we'll first save the incoming transfer
|
||||
// into this ram area.
|
||||
// Then, IF the transfer completes withput error, we'll copy it in one go to eeprom
|
||||
|
||||
|
||||
// if channel is used, all unused bits are '0's
|
||||
// if channel not used, all bytes are 0xff
|
||||
@ -193,184 +186,195 @@ typedef struct {
|
||||
#endif
|
||||
} __attribute__((packed)) t_channel; //
|
||||
|
||||
typedef struct {
|
||||
uint8_t band:4; // why do QS have these bits ? band can/is computed from the frequency
|
||||
uint8_t unused:2; //
|
||||
uint8_t scanlist2:1; // set if in scan list 2
|
||||
uint8_t scanlist1:1; // set if in scan list 1
|
||||
} __attribute__((packed)) t_channel_attr; //
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t band:4; // why do QS have these bits ? band can/is computed from the frequency
|
||||
uint8_t unused:2; //
|
||||
uint8_t scanlist2:1; // set if in scan list 2
|
||||
uint8_t scanlist1:1; // set if in scan list 1
|
||||
};
|
||||
uint8_t attributes;
|
||||
} __attribute__((packed)) t_channel_attrib;
|
||||
|
||||
// user configuration
|
||||
typedef struct {
|
||||
|
||||
// 0x0000
|
||||
t_channel channel[200]; // unused channels are set to all '0xff'
|
||||
union {
|
||||
|
||||
// 0x0C80
|
||||
union { // 2 VFO's (upper/lower) per band, 7 frequency bands
|
||||
t_channel vfo[14]; //
|
||||
struct { //
|
||||
t_channel a; //
|
||||
t_channel b; //
|
||||
} __attribute__((packed)) vfo_band[7]; //
|
||||
} __attribute__((packed)); //
|
||||
struct {
|
||||
// 0x0000
|
||||
t_channel user_channel[200]; // unused channels are set to all '0xff'
|
||||
// 0x0C80
|
||||
t_channel vfo_channel[14];
|
||||
};
|
||||
|
||||
// 0x0000
|
||||
t_channel channel[214];
|
||||
|
||||
} __attribute__((packed));
|
||||
|
||||
// 0x0D60
|
||||
t_channel_attr channel_attr[200]; //
|
||||
t_channel_attrib channel_attributes[USER_CHANNEL_LAST - USER_CHANNEL_FIRST + 1];
|
||||
|
||||
uint8_t unused1[8]; // 0xff's
|
||||
struct {
|
||||
// 0x0E28
|
||||
uint8_t unused1[8]; // 0xff's
|
||||
|
||||
// 0x0E30
|
||||
uint8_t unused2[16]; // 0xff's
|
||||
// 0x0E30
|
||||
uint8_t unused2[16]; // 0xff's
|
||||
|
||||
// 0x0E40
|
||||
uint16_t fm_channel[20]; //
|
||||
uint8_t unused3[8]; // 0xff's
|
||||
// 0x0E40
|
||||
uint16_t fm_channel[20]; //
|
||||
uint8_t unused3[8]; // 0xff's
|
||||
|
||||
// 0x0E70
|
||||
uint8_t call1; //
|
||||
uint8_t squelch_level; //
|
||||
uint8_t tx_timeout; //
|
||||
uint8_t noaa_auto_scan; //
|
||||
uint8_t key_lock; //
|
||||
uint8_t vox_switch; //
|
||||
uint8_t vox_level; //
|
||||
uint8_t mic_sensitivity; //
|
||||
#ifdef ENABLE_CONTRAST
|
||||
uint8_t lcd_contrast; // 1of11
|
||||
#else
|
||||
uint8_t unused4; // 0xff's
|
||||
#endif
|
||||
uint8_t channel_display_mode; //
|
||||
uint8_t cross_vfo; //
|
||||
uint8_t battery_save_ratio; //
|
||||
uint8_t dual_watch; //
|
||||
uint8_t backlight_time; //
|
||||
uint8_t tail_tone_elimination; //
|
||||
uint8_t vfo_open; //
|
||||
// 0x0E70
|
||||
uint8_t call1; //
|
||||
uint8_t squelch_level; //
|
||||
uint8_t tx_timeout; //
|
||||
uint8_t noaa_auto_scan; //
|
||||
uint8_t key_lock; //
|
||||
uint8_t vox_switch; //
|
||||
uint8_t vox_level; //
|
||||
uint8_t mic_sensitivity; //
|
||||
#ifdef ENABLE_CONTRAST
|
||||
uint8_t lcd_contrast; // 1of11
|
||||
#else
|
||||
uint8_t unused4; // 0xff's
|
||||
#endif
|
||||
uint8_t channel_display_mode; //
|
||||
uint8_t cross_vfo; //
|
||||
uint8_t battery_save_ratio; //
|
||||
uint8_t dual_watch; //
|
||||
uint8_t backlight_time; //
|
||||
uint8_t tail_tone_elimination; //
|
||||
uint8_t vfo_open; //
|
||||
|
||||
// 0x0E80
|
||||
uint8_t screen_channel_a; //
|
||||
uint8_t channel_a; //
|
||||
uint8_t freq_channel_a; //
|
||||
uint8_t screen_channel_b; //
|
||||
uint8_t channel_b; //
|
||||
uint8_t freq_channel_b; //
|
||||
uint8_t noaa_channel_a; //
|
||||
uint8_t noaa_channel_b; //
|
||||
uint8_t fm_selected_frequency; //
|
||||
uint8_t fm_selected_channel; //
|
||||
uint8_t fm_channel_mode; //
|
||||
uint8_t unused5[5]; // 0xff's
|
||||
// 0x0E80
|
||||
struct {
|
||||
struct {
|
||||
uint8_t screen; //
|
||||
uint8_t user; //
|
||||
uint8_t frequency; //
|
||||
} __attribute__((packed)) vfo[2];
|
||||
uint8_t noaa_channel[2]; //
|
||||
} __attribute__((packed)) indices;
|
||||
|
||||
// 0x0E90
|
||||
uint8_t beep_control; //
|
||||
uint8_t key1_short; //
|
||||
uint8_t key1_long; //
|
||||
uint8_t key2_short; //
|
||||
uint8_t key2_long; //
|
||||
uint8_t carrier_search_mode; // sc_rev;
|
||||
uint8_t auto_key_lock; //
|
||||
uint8_t display_mode; //
|
||||
uint32_t power_on_password; //
|
||||
#ifdef ENABLE_MDC1200
|
||||
uint16_t mdc1200_id; // 1of11
|
||||
uint8_t unused6[2]; // 0xff's
|
||||
#else
|
||||
uint8_t unused6[4]; // 0xff's
|
||||
#endif
|
||||
// 0x0E88
|
||||
struct {
|
||||
uint16_t selected_frequency; //
|
||||
uint8_t selected_channel; //
|
||||
uint8_t channel_mode; //
|
||||
uint8_t unused[4]; // 0xff's
|
||||
} __attribute__((packed)) fm_radio;
|
||||
|
||||
// 0x0EA0
|
||||
uint8_t voice_prompt; //
|
||||
uint8_t unused7[7]; // 0xff's
|
||||
uint8_t alarm_mode; //
|
||||
uint8_t roger_mode; //
|
||||
uint8_t repeater_tail_tone_elimination; // rp_ste
|
||||
uint8_t tx_channel; //
|
||||
#ifdef ENABLE_AIRCOPY
|
||||
uint32_t air_copy_freq; // 1of11
|
||||
#else
|
||||
uint8_t unused8[4]; // 0xff's
|
||||
#endif
|
||||
// 0x0E90
|
||||
uint8_t beep_control; //
|
||||
uint8_t key1_short; //
|
||||
uint8_t key1_long; //
|
||||
uint8_t key2_short; //
|
||||
uint8_t key2_long; //
|
||||
uint8_t carrier_search_mode; // sc_rev
|
||||
uint8_t auto_key_lock; //
|
||||
uint8_t power_on_display_mode; //
|
||||
uint32_t power_on_password; //
|
||||
#ifdef ENABLE_MDC1200
|
||||
uint16_t mdc1200_id; // 1of11
|
||||
uint8_t unused6[2]; // 0xff's
|
||||
#else
|
||||
uint8_t unused6[4]; // 0xff's
|
||||
#endif
|
||||
|
||||
// 0x0EB0
|
||||
char welcome_line1[16]; //
|
||||
char welcome_line2[16]; //
|
||||
// 0x0EA0
|
||||
uint8_t voice_prompt; //
|
||||
uint8_t unused7[7]; // 0xff's
|
||||
uint8_t alarm_mode; //
|
||||
uint8_t roger_mode; //
|
||||
uint8_t repeater_tail_tone_elimination; // rp_ste
|
||||
uint8_t tx_vfo_num; //
|
||||
#ifdef ENABLE_AIRCOPY
|
||||
uint32_t air_copy_freq; // 1of11
|
||||
#else
|
||||
uint8_t unused8[4]; // 0xff's
|
||||
#endif
|
||||
|
||||
// 0x0ED0
|
||||
uint8_t dtmf_side_tone; //
|
||||
uint8_t dtmf_separate_code; //
|
||||
uint8_t dtmf_group_call_code; //
|
||||
uint8_t dtmf_rsp; //
|
||||
uint8_t dtmf_auto_reset_time; //
|
||||
uint8_t dtmf_preload_time; //
|
||||
uint8_t dtmf_first_code_time; //
|
||||
uint8_t dtmf_hash_code_time; //
|
||||
uint8_t dtmf_code_time; //
|
||||
uint8_t dtmf_code_interval; //
|
||||
uint8_t dtmf_permit_kill; //
|
||||
uint8_t unused9[5]; // 0xff's
|
||||
// 0x0EB0
|
||||
char welcome_line[2][16]; //
|
||||
|
||||
// 0x0EE0
|
||||
uint8_t dtmf_ani_id[8]; //
|
||||
uint8_t dtmf_kill_code[8]; //
|
||||
uint8_t dtmf_revive_code[8]; //
|
||||
uint8_t dtmf_key_up_code[16]; //
|
||||
uint8_t dtmf_key_down_code[16]; //
|
||||
struct {
|
||||
// 0x0ED0
|
||||
uint8_t side_tone; //
|
||||
uint8_t separate_code; //
|
||||
uint8_t group_call_code; //
|
||||
uint8_t decode_response; //
|
||||
uint8_t auto_reset_time; //
|
||||
uint8_t preload_time; //
|
||||
uint8_t first_code_persist_time; //
|
||||
uint8_t hash_code_persist_time; //
|
||||
uint8_t code_persist_time; //
|
||||
uint8_t code_interval_time; //
|
||||
uint8_t permit_remote_kill; //
|
||||
uint8_t unused[5]; // 0xff's
|
||||
|
||||
// 0x0F18
|
||||
uint8_t s_list_default; //
|
||||
uint8_t priority1_enable; //
|
||||
uint8_t priority1_channel1; //
|
||||
uint8_t priority1_channel2; //
|
||||
uint8_t priority2_enable; //
|
||||
uint8_t priority2_channel1; //
|
||||
uint8_t priority2_channel2; //
|
||||
uint8_t unused10; // 0xff's
|
||||
// 0x0EE0
|
||||
char ani_id[8]; //
|
||||
char kill_code[8]; //
|
||||
char revive_code[8]; //
|
||||
char key_up_code[16]; //
|
||||
char key_down_code[16]; //
|
||||
} __attribute__((packed)) dtmf;
|
||||
|
||||
// 0x0F20
|
||||
uint8_t unused11[16]; // 0xff's
|
||||
// 0x0F18
|
||||
uint8_t scan_list_default; //
|
||||
struct {
|
||||
uint8_t enabled; //
|
||||
uint8_t channel[2]; //
|
||||
} __attribute__((packed)) priority_scan_list[2];
|
||||
uint8_t unused10; // 0xff's
|
||||
|
||||
// 0x0F30
|
||||
uint8_t aes_key[16]; // disabled = all 0xff
|
||||
// 0x0F20
|
||||
uint8_t unused11[16]; // 0xff's
|
||||
|
||||
// 0x0F40
|
||||
uint8_t freq_lock; //
|
||||
uint8_t enable_tx_350:1; // 1 = 350MHz ~ 400MHz TX is enabled
|
||||
uint8_t unused11a:7; //
|
||||
uint8_t radio_disabled:1; // 1 = radio is disabled
|
||||
uint8_t unused11b:7; //
|
||||
uint8_t enable_tx_200:1; // 1 = 174MHz ~ 350MHz TX enabled
|
||||
uint8_t unused11c:7; //
|
||||
uint8_t enable_tx_470:1; // 1 = >= 470MHz TX enabled
|
||||
uint8_t unused11d:7; //
|
||||
uint8_t enable_350:1; // 1 = 350HMz ~ 400MHz enabled
|
||||
uint8_t unused11e:7; //
|
||||
uint8_t enable_scrambler:1; //
|
||||
uint8_t enable_rssi_bar:1; // 1of11
|
||||
uint8_t unused11f:6; //
|
||||
#if 0
|
||||
// QS
|
||||
uint8_t unused12[9]; // 0xff's
|
||||
#else
|
||||
// 1of11
|
||||
uint8_t tx_enable:1; // 0 = completely disable TX, 1 = allow TX
|
||||
uint8_t dtmf_live_decoder:1; // 1 = enable on-screen live DTMF decoder
|
||||
uint8_t battery_text:2; // 0 = no battery text, 1 = voltage, 2 = percent .. on the status bar
|
||||
uint8_t mic_bar:1; // 1 = on-screen TX audio level
|
||||
uint8_t am_fix:1; // 1 = enable RX AM fix
|
||||
uint8_t backlight_on_tx_rx:2; // 0 = no backlight when TX/RX, 1 = when TX, 2 = when RX, 3 = both RX/TX
|
||||
// 0x0F30
|
||||
uint32_t aes_key[4]; // disabled = all 0xff
|
||||
|
||||
uint8_t scan_hold_time; // ticks we stay paused for on an RX'ed signal when scanning
|
||||
// 0x0F40
|
||||
uint8_t freq_lock; //
|
||||
uint8_t enable_tx_350:1; // 1 = 350MHz ~ 400MHz TX is enabled
|
||||
uint8_t unused11a:7; //
|
||||
uint8_t radio_disabled:1; // 1 = radio is disabled
|
||||
uint8_t unused11b:7; //
|
||||
uint8_t enable_tx_200:1; // 1 = 174MHz ~ 350MHz TX enabled
|
||||
uint8_t unused11c:7; //
|
||||
uint8_t enable_tx_470:1; // 1 = >= 470MHz TX enabled
|
||||
uint8_t unused11d:7; //
|
||||
uint8_t enable_350:1; // 1 = 350HMz ~ 400MHz enabled
|
||||
uint8_t unused11e:7; //
|
||||
uint8_t enable_scrambler:1; //
|
||||
uint8_t enable_rssi_bar:1; // 1of11
|
||||
uint8_t unused11f:6; //
|
||||
#if 0
|
||||
// QS
|
||||
uint8_t unused12[9]; // 0xff's
|
||||
#else
|
||||
// 1of11
|
||||
uint8_t tx_enable:1; // 0 = completely disable TX, 1 = allow TX
|
||||
uint8_t dtmf_live_decoder:1; // 1 = enable on-screen live DTMF decoder
|
||||
uint8_t battery_text:2; // 0 = no battery text, 1 = voltage, 2 = percent .. on the status bar
|
||||
uint8_t mic_bar:1; // 1 = on-screen TX audio level
|
||||
uint8_t am_fix:1; // 1 = enable RX AM fix
|
||||
uint8_t backlight_on_tx_rx:2; // 0 = no backlight when TX/RX, 1 = when TX, 2 = when RX, 3 = both RX/TX
|
||||
|
||||
uint8_t unused12[7]; // 0xff's
|
||||
#endif
|
||||
uint8_t scan_hold_time; // ticks we stay paused for on an RX'ed signal when scanning
|
||||
|
||||
uint8_t unused12[7]; // 0xff's
|
||||
#endif
|
||||
} __attribute__((packed)) setting;
|
||||
|
||||
// 0x0F50
|
||||
struct {
|
||||
char name[10];
|
||||
uint8_t unused[6]; // 0xff's
|
||||
} __attribute__((packed)) channel_name[200];
|
||||
} __attribute__((packed)) channel_name[USER_CHANNEL_LAST - USER_CHANNEL_FIRST + 1];
|
||||
|
||||
// 0x1BD0
|
||||
uint8_t unused13[16 * 3]; // 0xff's .. free to use
|
||||
@ -400,23 +404,7 @@ typedef struct {
|
||||
uint8_t unused5[6]; // 0xff's
|
||||
uint8_t close_glitch_thresh[10]; //
|
||||
uint8_t unused6[6]; // 0xff's
|
||||
} squelch_band_4567[6];
|
||||
|
||||
// 0x1E60
|
||||
struct {
|
||||
uint8_t open_rssi_thresh[10]; //
|
||||
uint8_t unused1[6]; // 0xff's
|
||||
uint8_t close_rssi_thresh[10]; //
|
||||
uint8_t unused2[6]; // 0xff's
|
||||
uint8_t open_noise_thresh[10]; //
|
||||
uint8_t unused3[6]; // 0xff's
|
||||
uint8_t close_noise_thresh[10]; //
|
||||
uint8_t unused4[6]; // 0xff's
|
||||
uint8_t open_glitch_thresh[10]; //
|
||||
uint8_t unused5[6]; // 0xff's
|
||||
uint8_t close_glitch_thresh[10]; //
|
||||
uint8_t unused6[6]; // 0xff's
|
||||
} squelch_band_123[6];
|
||||
} __attribute__((packed)) squelch_band[2]; // 0 = bands 4567, 1 = bands 123
|
||||
|
||||
// 0x1EC0
|
||||
uint16_t rssi_band_4567[4]; // RSSI bargraph thresholds .. (dBm + 160) * 2
|
||||
@ -425,11 +413,16 @@ typedef struct {
|
||||
// 0x1ED0
|
||||
struct
|
||||
{
|
||||
uint8_t low[3]; //
|
||||
uint8_t mid[3]; //
|
||||
uint8_t high[3]; //
|
||||
union {
|
||||
struct {
|
||||
uint8_t low[3]; //
|
||||
uint8_t mid[3]; //
|
||||
uint8_t high[3]; //
|
||||
};
|
||||
uint8_t level[3][3]; //
|
||||
};
|
||||
uint8_t unused[7]; // 0xff's
|
||||
} tx_band_power[7]; //
|
||||
} __attribute__((packed)) tx_band_power[7];
|
||||
|
||||
// 0x1F40
|
||||
uint16_t battery[6]; //
|
||||
@ -440,11 +433,13 @@ typedef struct {
|
||||
{
|
||||
uint16_t threshold[10]; //
|
||||
uint8_t unused[4]; // 0xff's
|
||||
} vox[2];
|
||||
} __attribute__((packed)) vox[2];
|
||||
|
||||
// 0x1F80
|
||||
uint8_t mic_gain_dB2[5]; //
|
||||
uint8_t unused4[3]; //
|
||||
uint8_t unused2[3]; //
|
||||
|
||||
// 0x1F88
|
||||
int16_t bk4819_xtal_freq_low; //
|
||||
uint16_t unknown2; //
|
||||
uint16_t unknown3; //
|
||||
@ -452,7 +447,7 @@ typedef struct {
|
||||
uint8_t dac_gain; //
|
||||
|
||||
// 0x1F90
|
||||
uint8_t unused5[16 * 7]; // 0xff's
|
||||
uint8_t unused3[16 * 7]; // 0xff's
|
||||
|
||||
// 0x2000
|
||||
|
||||
@ -465,7 +460,7 @@ typedef struct {
|
||||
t_config config; // radios user config
|
||||
|
||||
// 0x1D00
|
||||
uint8_t unused[256]; // does this belong to the config, or the calibration, or neither ?
|
||||
uint8_t unused[16 * 16]; // does this belong to the config, or the calibration, or neither ?
|
||||
|
||||
// 0x1E00
|
||||
t_calibration calib; // calibration settings .. we DO NOT pass this through aircopy, it's radio specific
|
||||
@ -473,122 +468,9 @@ typedef struct {
|
||||
} __attribute__((packed)) t_eeprom; // 8192 (0x2000) bytes of eeprom
|
||||
|
||||
// ************************************************
|
||||
// this and all the other variables are going to be replaced with the above t_eeprom
|
||||
|
||||
typedef struct {
|
||||
uint8_t screen_channel[2];
|
||||
uint8_t freq_channel[2];
|
||||
uint8_t user_channel[2];
|
||||
#ifdef ENABLE_NOAA
|
||||
uint8_t noaa_channel[2];
|
||||
#endif
|
||||
uint8_t rx_vfo;
|
||||
uint8_t tx_vfo;
|
||||
|
||||
uint8_t field7_0xa;
|
||||
uint8_t field8_0xb;
|
||||
|
||||
#ifdef ENABLE_FMRADIO
|
||||
uint16_t fm_selected_frequency;
|
||||
uint8_t fm_selected_channel;
|
||||
bool fm_channel_mode;
|
||||
uint16_t fm_frequency_playing;
|
||||
#endif
|
||||
|
||||
uint8_t squelch_level;
|
||||
uint8_t tx_timeout_timer;
|
||||
#ifdef ENABLE_KEYLOCK
|
||||
bool key_lock;
|
||||
#endif
|
||||
bool vox_switch;
|
||||
uint8_t vox_level;
|
||||
#ifdef ENABLE_VOICE
|
||||
voice_prompt_t voice_prompt;
|
||||
#endif
|
||||
bool beep_control;
|
||||
uint8_t channel_display_mode;
|
||||
bool tail_note_elimination;
|
||||
bool vfo_open;
|
||||
uint8_t dual_watch;
|
||||
uint8_t cross_vfo_rx_tx;
|
||||
uint8_t battery_save;
|
||||
uint8_t backlight;
|
||||
uint8_t scan_resume_mode;
|
||||
uint8_t scan_list_default;
|
||||
bool scan_list_enabled[2];
|
||||
uint8_t scan_list_priority_ch1[2];
|
||||
uint8_t scan_list_priority_ch2[2];
|
||||
|
||||
#ifdef ENABLE_MDC1200
|
||||
uint16_t mdc1200_id;
|
||||
#endif
|
||||
|
||||
bool auto_keypad_lock;
|
||||
|
||||
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
|
||||
alarm_mode_t alarm_mode;
|
||||
#endif
|
||||
pwr_on_display_mode_t pwr_on_display_mode;
|
||||
roger_mode_t roger_mode;
|
||||
uint8_t repeater_tail_tone_elimination;
|
||||
uint8_t key1_short_press_action;
|
||||
uint8_t key1_long_press_action;
|
||||
uint8_t key2_short_press_action;
|
||||
uint8_t key2_long_press_action;
|
||||
uint8_t mic_sensitivity;
|
||||
uint8_t mic_sensitivity_tuning;
|
||||
// uint8_t chan_1_call;
|
||||
char ani_dtmf_id[8];
|
||||
char kill_code[8];
|
||||
char revive_code[8];
|
||||
char dtmf_key_up_code[16];
|
||||
char dtmf_key_down_code[16];
|
||||
|
||||
char dtmf_separate_code;
|
||||
char dtmf_group_call_code;
|
||||
uint8_t dtmf_decode_response;
|
||||
uint8_t dtmf_auto_reset_time;
|
||||
uint16_t dtmf_preload_time;
|
||||
uint16_t dtmf_first_code_persist_time;
|
||||
uint16_t dtmf_hash_code_persist_time;
|
||||
uint16_t dtmf_code_persist_time;
|
||||
uint16_t dtmf_code_interval_time;
|
||||
bool dtmf_side_tone;
|
||||
bool permit_remote_kill;
|
||||
int16_t BK4819_xtal_freq_low;
|
||||
#ifdef ENABLE_NOAA
|
||||
bool noaa_auto_scan;
|
||||
#endif
|
||||
uint8_t volume_gain;
|
||||
uint8_t dac_gain;
|
||||
vfo_info_t vfo_info[2];
|
||||
uint32_t power_on_password;
|
||||
uint16_t vox1_threshold;
|
||||
uint16_t vox0_threshold;
|
||||
|
||||
uint8_t scan_hold_time_500ms;
|
||||
|
||||
// uint8_t field29_0x26;
|
||||
// uint8_t field30_0x27;
|
||||
|
||||
// uint8_t field37_0x32;
|
||||
// uint8_t field38_0x33;
|
||||
|
||||
// uint8_t field57_0x6c;
|
||||
// uint8_t field58_0x6d;
|
||||
|
||||
// uint8_t field60_0x7e;
|
||||
// uint8_t field61_0x7f;
|
||||
|
||||
// uint8_t field77_0x95;
|
||||
// uint8_t field78_0x96;
|
||||
// uint8_t field79_0x97;
|
||||
|
||||
} eeprom_config_t;
|
||||
|
||||
extern t_eeprom g_eeprom2;
|
||||
|
||||
extern eeprom_config_t g_eeprom;
|
||||
extern t_eeprom g_eeprom;
|
||||
extern t_channel_attrib g_user_channel_attributes[FREQ_CHANNEL_LAST + 1];
|
||||
|
||||
void SETTINGS_read_eeprom(void);
|
||||
void SETTINGS_write_eeprom_config(void);
|
||||
@ -597,9 +479,15 @@ void SETTINGS_write_eeprom_config(void);
|
||||
void SETTINGS_save_fm(void);
|
||||
#endif
|
||||
void SETTINGS_save_vfo_indices(void);
|
||||
//void SETTINGS_restore_calibration(void);
|
||||
void SETTINGS_save(void);
|
||||
void SETTINGS_save_channel(const unsigned int channel, const unsigned int vfo, const vfo_info_t *p_vfo, const unsigned int mode);
|
||||
void SETTINGS_save_chan_attribs_name(const unsigned int channel, const vfo_info_t *p_vfo);
|
||||
|
||||
unsigned int SETTINGS_find_channel(const uint32_t frequency);
|
||||
uint32_t SETTINGS_fetch_channel_frequency(const int channel);
|
||||
unsigned int SETTINGS_fetch_channel_step_setting(const int channel);
|
||||
void SETTINGS_fetch_channel_name(char *s, const int channel);
|
||||
unsigned int SETTINGS_fetch_frequency_step_setting(const int channel, const int vfo);
|
||||
void SETTINGS_factory_reset(bool bIsAll);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user