// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-

// run this at setup on the ground
// -------------------------------
static void init_home()
{
    set_home_is_set(true);

    // copter uses 0 home altitude
    Location loc = gps.location();

    ahrs.set_home(loc);

    inertial_nav.setup_home_position();

    // log new home position which mission library will pull from ahrs
    if (should_log(MASK_LOG_CMD)) {
        AP_Mission::Mission_Command temp_cmd;
        if (mission.read_cmd_from_storage(0, temp_cmd)) {
            Log_Write_Cmd(temp_cmd);
        }
    }

    // update navigation scalers.  used to offset the shrinking longitude as we go towards the poles
    scaleLongDown = longitude_scale(loc);
    scaleLongUp   = 1.0f/scaleLongDown;
}

// update_home - reset home to current location
//  should be called only when vehicle is disarmed
static void update_home()
{
    // copter uses 0 home altitude
    Location loc = gps.location();

    // set ahrs object's home position
    ahrs.set_home(loc);

    // update navigation scalers.  used to offset the shrinking longitude as we go towards the poles
    scaleLongDown = longitude_scale(loc);
    scaleLongUp   = 1.0f/scaleLongDown;
}