Example #1
0
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;
	}
}
Example #2
0
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;
	}
}
Example #3
0
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;
	}
}
Example #4
0
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;

    }
}
Example #5
0
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;

    }
}
Example #6
0
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;
	}
}
Example #7
0
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;
	}
}
Example #8
0
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;

	}
}
Example #9
0
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;
	}
}