mirror of https://github.com/ArduPilot/ardupilot
parent
3a934357e9
commit
fc85228d09
|
@ -4,7 +4,6 @@
|
|||
|
||||
// Functions called from the setup menu
|
||||
static int8_t setup_factory (uint8_t argc, const Menu::arg *argv);
|
||||
static int8_t setup_set (uint8_t argc, const Menu::arg *argv);
|
||||
static int8_t setup_show (uint8_t argc, const Menu::arg *argv);
|
||||
static int8_t setup_sonar (uint8_t argc, const Menu::arg *argv);
|
||||
|
||||
|
@ -14,7 +13,6 @@ const struct Menu::command setup_menu_commands[] PROGMEM = {
|
|||
// command function called
|
||||
// ======= ===============
|
||||
{"reset", setup_factory},
|
||||
{"set", setup_set},
|
||||
{"show", setup_show},
|
||||
};
|
||||
|
||||
|
@ -28,41 +26,11 @@ setup_mode(uint8_t argc, const Menu::arg *argv)
|
|||
// Give the user some guidance
|
||||
cliSerial->printf_P(PSTR("Setup Mode\n\n\n"));
|
||||
|
||||
if(g.rc_1.radio_min >= 1300) {
|
||||
delay(1000);
|
||||
cliSerial->printf_P(PSTR("\n!Warning, radio not configured!"));
|
||||
delay(1000);
|
||||
cliSerial->printf_P(PSTR("\n Type 'radio' now.\n\n"));
|
||||
}
|
||||
|
||||
// Run the setup menu. When the menu exits, we will return to the main menu.
|
||||
setup_menu.run();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int8_t
|
||||
setup_optflow(uint8_t argc, const Menu::arg *argv)
|
||||
{
|
||||
#if OPTFLOW == ENABLED
|
||||
if (!strcmp_P(argv[1].str, PSTR("on"))) {
|
||||
g.optflow_enabled = true;
|
||||
init_optflow();
|
||||
|
||||
} else if (!strcmp_P(argv[1].str, PSTR("off"))) {
|
||||
g.optflow_enabled = false;
|
||||
|
||||
}else{
|
||||
cliSerial->printf_P(PSTR("\nOp:[on, off]\n"));
|
||||
report_optflow();
|
||||
return 0;
|
||||
}
|
||||
|
||||
g.optflow_enabled.save();
|
||||
report_optflow();
|
||||
#endif // OPTFLOW == ENABLED
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Initialise the EEPROM to 'factory' settings (mostly defined in APM_Config.h or via defaults).
|
||||
// Called by the setup menu 'factoryreset' command.
|
||||
static int8_t
|
||||
|
@ -90,65 +58,6 @@ setup_factory(uint8_t argc, const Menu::arg *argv)
|
|||
return(0);
|
||||
}
|
||||
|
||||
//Set a parameter to a specified value. It will cast the value to the current type of the
|
||||
//parameter and make sure it fits in case of INT8 and INT16
|
||||
static int8_t setup_set(uint8_t argc, const Menu::arg *argv)
|
||||
{
|
||||
int8_t value_int8;
|
||||
int16_t value_int16;
|
||||
|
||||
AP_Param *param;
|
||||
enum ap_var_type p_type;
|
||||
|
||||
if(argc!=3)
|
||||
{
|
||||
cliSerial->printf_P(PSTR("Invalid command. Usage: set <name> <value>\n"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
param = AP_Param::find(argv[1].str, &p_type);
|
||||
if(!param)
|
||||
{
|
||||
cliSerial->printf_P(PSTR("Param not found: %s\n"), argv[1].str);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch(p_type)
|
||||
{
|
||||
case AP_PARAM_INT8:
|
||||
value_int8 = (int8_t)(argv[2].i);
|
||||
if(argv[2].i!=value_int8)
|
||||
{
|
||||
cliSerial->printf_P(PSTR("Value out of range for type INT8\n"));
|
||||
return 0;
|
||||
}
|
||||
((AP_Int8*)param)->set_and_save(value_int8);
|
||||
break;
|
||||
case AP_PARAM_INT16:
|
||||
value_int16 = (int16_t)(argv[2].i);
|
||||
if(argv[2].i!=value_int16)
|
||||
{
|
||||
cliSerial->printf_P(PSTR("Value out of range for type INT16\n"));
|
||||
return 0;
|
||||
}
|
||||
((AP_Int16*)param)->set_and_save(value_int16);
|
||||
break;
|
||||
|
||||
//int32 and float don't need bounds checking, just use the value provoded by Menu::arg
|
||||
case AP_PARAM_INT32:
|
||||
((AP_Int32*)param)->set_and_save(argv[2].i);
|
||||
break;
|
||||
case AP_PARAM_FLOAT:
|
||||
((AP_Float*)param)->set_and_save(argv[2].f);
|
||||
break;
|
||||
default:
|
||||
cliSerial->printf_P(PSTR("Cannot set parameter of type %d.\n"), p_type);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Print the current configuration.
|
||||
// Called by the setup menu 'show' command.
|
||||
static int8_t
|
||||
|
|
Loading…
Reference in New Issue