ardupilot/ArduCopter/landing_gear.pde

32 lines
1.2 KiB
Plaintext
Raw Normal View History

/// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
// Run landing gear controller at 10Hz
static void landinggear_update(){
2015-01-06 22:51:06 -04:00
// If landing gear control is active, run update function.
if (check_if_auxsw_mode_used(AUXSW_LANDING_GEAR)){
2015-01-06 22:51:06 -04:00
// last status (deployed or retracted) used to check for changes
static bool last_deploy_status;
2015-01-06 22:51:06 -04:00
// if we are doing an automatic landing procedure, force the landing gear to deploy.
// To-Do: should we pause the auto-land procedure to give time for gear to come down?
if (control_mode == LAND || (control_mode==RTL && rtl_state == RTL_Land) || (control_mode == AUTO && auto_mode == Auto_Land)){
landinggear.force_deploy(true);
}
2015-01-06 22:51:06 -04:00
landinggear.update();
2015-01-06 22:51:06 -04:00
// send event message to datalog if status has changed
if (landinggear.deployed() != last_deploy_status){
2015-01-06 22:51:06 -04:00
if (landinggear.deployed()) {
Log_Write_Event(DATA_LANDING_GEAR_DEPLOYED);
} else {
Log_Write_Event(DATA_LANDING_GEAR_RETRACTED);
}
}
2015-01-06 22:51:06 -04:00
last_deploy_status = landinggear.deployed();
}
}