TcxLap * Edge305Device::getLapHeader(D1011 * lapData) {

    TcxLap * singleLap = new TcxLap();

    //TODO: Think about letting TcxLap calculate that itself
    uint32 dur = lapData->total_time;
    stringstream ss;
    int  hun = dur % 100;
    dur -= hun;
    dur /= 100;
    ss << dur << "." << hun ;
    singleLap->setTotalTimeSeconds(ss.str());

    ss.str(""); ss << lapData->total_dist;
    singleLap->setDistanceMeters(ss.str());
    ss.str(""); ss << lapData->max_speed;
    singleLap->setMaximumSpeed(ss.str());
    ss.str(""); ss << lapData->calories;
    singleLap->setCalories(ss.str());

    if ( lapData->avg_heart_rate != 0 ) {
        ss.str("");
        ss << (unsigned int)(lapData->avg_heart_rate);
        singleLap->setAverageHeartRateBpm(ss.str());
    }
    if ( lapData->max_heart_rate != 0 ) {
        ss.str("");
        ss << (unsigned int)(lapData->max_heart_rate);
        singleLap->setMaximumHeartRateBpm(ss.str());
    }

    if (lapData->intensity == D1001_active) {
        singleLap->setIntensity(TrainingCenterDatabase::Active);
    } else {
        singleLap->setIntensity(TrainingCenterDatabase::Resting);
    }

    if (this->runType == 1) {
        singleLap->setCadenceSensorType(TrainingCenterDatabase::Footpod);
    } else {
        singleLap->setCadenceSensorType(TrainingCenterDatabase::Bike);
    }

    if ( lapData->avg_cadence != 0xff ) {
        ss.str("");
        ss << (unsigned int)(lapData->avg_cadence);
        singleLap->setCadence(ss.str());
    }

    switch (lapData->intensity) {
        case   D1011_manual: singleLap->setTriggerMethod(TrainingCenterDatabase::Manual); break;
        case   D1011_distance: singleLap->setTriggerMethod(TrainingCenterDatabase::Distance); break;
        case   D1011_location: singleLap->setTriggerMethod(TrainingCenterDatabase::Location); break;
        case   D1011_time: singleLap->setTriggerMethod(TrainingCenterDatabase::Time); break;
        case   D1011_heart_rate: singleLap->setTriggerMethod(TrainingCenterDatabase::HeartRate); break;
    }

    return singleLap;
}