void gui_set_autostart_action(uint8_t index) { switch(index) { case(1): gui_value_conf_P(PSTR("Start threshold"), GUI_VAL_NUMBER_DISABLE, PSTR("+/-%0.0fm"), config.autostart.start_sensititvity, 0, 100, 1, gui_set_autostart_start_threshold_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_value_conf_P(PSTR("Land threshold"), GUI_VAL_NUMBER_DISABLE, PSTR("+/-%0.0fm"), config.autostart.land_sensititvity, 0, 100, 1, gui_set_autostart_land_threshold_cb); gui_switch_task(GUI_SET_VAL); break; case(3): gui_value_conf_P(PSTR("Timeout"), GUI_VAL_NUMBER, PSTR("%0.0f sec"), config.autostart.timeout, 5, 240, 1, gui_set_autostart_timeout_cb); gui_switch_task(GUI_SET_VAL); break; case(4): config.autostart.flags ^= AUTOSTART_SUPRESS_AUDIO; eeprom_busy_wait(); eeprom_update_byte(&config_ee.autostart.flags, config.autostart.flags); break; case(5): config.autostart.flags ^= AUTOSTART_ALWAYS_ENABLED; eeprom_busy_wait(); eeprom_update_byte(&config_ee.autostart.flags, config.autostart.flags); break; } }
void gui_layouts_action(uint8_t index) { switch(index) { case(0): gui_switch_task(GUI_SET_WIDGETS); break; case(1): gui_switch_task(GUI_SET_LAYOUT); break; case(2): gui_value_conf_P(PSTR("Pages count"), GUI_VAL_NUMBER, PSTR("%1.0f"), config.gui.number_of_pages, 1, MAX_NUMBER_OF_PAGES, 1, gui_set_layouts_pages_cb); gui_switch_task(GUI_SET_VAL); break; case(3): config.gui.silent ^= (1 << active_page); eeprom_busy_wait(); eeprom_update_byte(&config_ee.gui.silent, config.gui.silent); break; case(4): config.gui.hide_label ^= (1 << active_page); eeprom_busy_wait(); eeprom_update_byte(&config_ee.gui.hide_label, config.gui.hide_label); break; case(5): gui_switch_task(GUI_SET_AUTOSET); break; } }
void gui_set_audio_action(uint8_t index) { switch(index) { case(0): gui_value_conf_P(PSTR("General volume"), GUI_VAL_VOLUME, PSTR("%0.0f %%"), fc.audio_volume, 0, 100, 5, gui_set_audio_vol_cb); gui_switch_task(GUI_SET_VAL); break; } }
void gui_set_vario_action(uint8_t index) { switch(index) { case(0): gui_value_conf_P(PSTR("Lift threshold"), GUI_VAL_NUMBER, PSTR("%0.1f m/s"), fc.audio_lift / 100.0, fc.audio_sink / 100.0, 2, 0.1, gui_set_vario_lift_cb); gui_switch_task(GUI_SET_VAL); break; case(1): gui_value_conf_P(PSTR("Sink threshold"), GUI_VAL_NUMBER, PSTR("%0.1f m/s"), fc.audio_sink / 100.0, -10, fc.audio_lift / 100.0, 0.1, gui_set_vario_sink_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_showmessage_P(PSTR("Not implemented")); break; case(3): fc.audio_fluid = !fc.audio_fluid; eeprom_busy_wait(); eeprom_update_byte(&config.audio_profile.fluid, fc.audio_fluid); break; case(4): gui_value_conf_P(PSTR("Digital vario int."), GUI_VAL_NUMBER, PSTR("%0.1f sec"), set_vario_digital, 0, 30, 0.1, gui_set_vario_dig_int_cb); gui_switch_task(GUI_SET_VAL); break; case(5): gui_value_conf_P(PSTR("Average vario int."), GUI_VAL_NUMBER, PSTR("%0.1f sec"), set_vario_avg, 0, 90, 0.1, gui_set_vario_avg_int_cb); gui_switch_task(GUI_SET_VAL); break; case(6): fc.vario_flags ^= VARIO_UNITS_I; eeprom_busy_wait(); eeprom_update_byte(&config.vario.flags, fc.vario_flags); break; } }
void gui_set_autoset_config_action(uint8_t index) { switch (index) { case (0): gui_value_conf_P(PSTR("Circling avg."), GUI_VAL_NUMBER, PSTR("%0.0f sec"), config.gui.page_circling_average, 5, 60, 1, gui_set_autoset_config_circling_avg_cb); gui_switch_task(GUI_SET_VAL); break; case (1): gui_value_conf_P(PSTR("Circling thold."), GUI_VAL_NUMBER, PSTR("%0.0f deg/s"), config.gui.page_cirlcing_thold, 2, 30, 1, gui_set_autoset_config_circling_thold_cb); gui_switch_task(GUI_SET_VAL); break; case (2): gui_value_conf_P(PSTR("Acro thold."), GUI_VAL_NUMBER, PSTR("%0.1f m/s"), config.gui.page_acro_thold / 10.0, -10, 0, 0.5, gui_set_autoset_config_acro_thold_cb); gui_switch_task(GUI_SET_VAL); break; } }
void gui_set_display_action(uint8_t index) { switch(index) { case(0): gui_value_conf_P(PSTR("Contrast"), GUI_VAL_CONTRAST, PSTR(""), lcd_contrast, 0, GUI_CONTRAST_STEPS, 1, gui_set_display_contrast_cb); gui_switch_task(GUI_SET_VAL); break; case(1): gui_value_conf_P(PSTR("Backlight"), GUI_VAL_BRIGTHNES, PSTR(""), lcd_brightness, 0, 100, 20, gui_set_display_brightness_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_value_conf_P(PSTR("Backlight timeout"), GUI_VAL_NUMBER, PSTR("%1.0f sec"), lcd_brightness_timeout, 0, 30, 1, gui_set_display_brightness_timeout_cb); gui_switch_task(GUI_SET_VAL); break; case(3): lcd_flags = lcd_flags ^ CFG_DISP_INVERT; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); gui_change_disp_cfg(); break; case(4): lcd_flags = lcd_flags ^ CFG_DISP_FLIP; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); disp.SetFlip(lcd_flags & CFG_DISP_FLIP); break; case(5): lcd_flags = lcd_flags ^ CFG_DISP_ANIM; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); break; } }
void gui_set_time_action(uint8_t index) { switch(index) { case(0): gui_value_conf_P(PSTR("Time"), GUI_VAL_TIME, PSTR(""), 0, 0, 0, 1, gui_set_time_time_cb); gui_switch_task(GUI_SET_VAL); break; case(1): gui_value_conf_P(PSTR("Date"), GUI_VAL_DATE, PSTR(""), 0, 0, 0, 1, gui_set_time_time_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_value_conf_P(PSTR("Time zone"), GUI_VAL_NUMBER, PSTR("UTC %+0.1f"), config.system.time_zone / 2.0, -12, 12, 0.5, gui_set_time_timezone_cb); gui_switch_task(GUI_SET_VAL); break; case(3): config.system.time_flags ^= TIME_DST; if (config.system.time_flags & TIME_DST) config.system.time_zone = config.system.time_zone + 2; else config.system.time_zone = config.system.time_zone - 2; eeprom_busy_wait(); eeprom_update_block((void *)&config.system.time_zone, (void *)&config.system.time_zone, sizeof(int8_t)); eeprom_update_byte(&config_ee.system.time_flags, config.system.time_flags); break; case(4): config.system.time_flags ^= TIME_SYNC; eeprom_busy_wait(); eeprom_update_byte(&config_ee.system.time_flags, config.system.time_flags); break; } }
void gui_set_weaklift_action(uint8_t index) { switch (index) { case(0): config.vario.weak_lift_enabled = !config.vario.weak_lift_enabled; eeprom_busy_wait(); eeprom_update_byte(&config_ee.vario.weak_lift_enabled, config.vario.weak_lift_enabled); break; case(1): gui_value_conf_P(PSTR("Threshold"), GUI_VAL_NUMBER, PSTR("%1.0f"), config.vario.weak_lift / 10, 1, 20, 1, gui_set_weaklift_val_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_value_conf_P(PSTR("Buzzer frequency"), GUI_VAL_NUMBER, PSTR("%1.0f Hz"), config.audio_profile.weak_lift_freq, 10, 2000, 10, gui_set_weaklift_freq_cb); gui_switch_task(GUI_SET_VAL); break; } }
void gui_set_system_action(uint8_t index) { switch(index) { case(0): gui_switch_task(GUI_SET_TIME); break; case(1): gui_switch_task(GUI_SET_DISPLAY); break; case(2): gui_switch_task(GUI_SET_AUDIO); break; case(3): config.connectivity.usb_mode = !config.connectivity.usb_mode; eeprom_busy_wait(); eeprom_update_byte(&config_ee.connectivity.usb_mode, config.connectivity.usb_mode); break; case(4): gui_value_conf_P(PSTR("Auto power-off"), GUI_VAL_NUMBER_DISABLE, PSTR("%0.0f min"), config.system.auto_power_off, 0, 120, 1, gui_set_system_auto_power_off_cb); gui_switch_task(GUI_SET_VAL); break; case(5): config.connectivity.uart_function = (config.connectivity.uart_function + 1) % NUMBER_OF_UART_FORWARD; eeprom_busy_wait(); eeprom_update_byte(&config_ee.connectivity.uart_function, config.connectivity.uart_function); uart_stop(); uart_init(); break; case(6): if (!storage_card_in()) { gui_showmessage_P(PSTR("No SD card!")); return; } gui_dialog_set_P(PSTR("Warning"), PSTR("This will erase\nall data from SD\ncard! Continue?"), GUI_STYLE_OKCANCEL, gui_set_system_format_cb); gui_switch_task(GUI_DIALOG); break; } }