static void lap_started_event(const tiny_millis_t time, const GeoPoint *sp,
                              const float distance)
{
    pr_debug_int_msg("Starting lap ", ++g_lap);
    g_at_sf = true;

    // Timing and predictive timing
    start_lap_timing(time);
    startLap(sp, time);
    reset_elapsed_time();

    // Reset the sector logic
    g_lastSectorTimestamp = time;
    g_sector = 0;
    update_sector_geo_circle(g_sector);

    // Reset distance logic
    set_distance(distance);

    /*
     * Reset our finishGeoTrigger so that we get away from
     * finish before we re-arm the system.
     */
    resetGeoTrigger(&g_finish_geo_trigger);
}
Exemple #2
0
// ---------------------------------------------------------------------
//  compute_elapsed_time
// ---------------------------------------------------------------------
void compute_elapsed_time(time_rec_t* since, 
                          time_rec_t* to, 
                          elapsed_time_t* elapsed) {

    reset_elapsed_time(elapsed);
    add_to_elapsed_time(since, to, elapsed);
}
void ElapsedLapTimeTest::testReset() {
        gpsSnap.deltaFirstFix = 3;
        lap_started_normal_event(&gpsSnap);
        CPPUNIT_ASSERT_EQUAL(0, lapstats_elapsed_time());

        gpsSnap.deltaFirstFix = 15;
        update_elapsed_time(&gpsSnap);
        CPPUNIT_ASSERT_EQUAL(12, lapstats_elapsed_time());

        reset_elapsed_time();
        CPPUNIT_ASSERT_EQUAL(0, lapstats_elapsed_time());
}
void lapStats_init()
{
    lapstats_reset_distance();
    reset_elapsed_time();
    set_active_track(NULL);
    resetPredictiveTimer();
    reset_current_lap();
    g_geo_circle_radius = 0;
    g_configured = 0;
    g_lastLapTime = 0;
    g_lastSectorTime = 0;
    g_at_sf = 0;
    g_lapStartTimestamp = -1;
    g_at_sector = 0;
    g_lastSectorTimestamp = 0;
    g_lapCount = 0;
    g_sector = -1;     // Indicates we haven't crossed start/finish yet.
    g_lastSector = -1; // Indicates no previous sector.
}