New paste Repaste Download
   struct Location {
        // TODO 2, 3
        uint32_t startTimestamp; // 1 unix epoch, seconds
        int32_t baseLatitude;    // 5 /6000000 -> coords
        int32_t baseLongitude;   // 6 /-6000000 -> coords
        int32_t baseAltitude;    // 7 /2 -> meters
        int32_t maxLatitude;     // 8 /3000000 -> coords
        int32_t minLatitude;     // 9 /3000000 -> coords
        int32_t maxLongitude;    // 10 /3000000 -> coords
        int32_t minLongitude;    // 11 /3000000 -> coords
        bool hasData = false;
    };
    struct HeartRate {
        int32_t avg; // 1 bpm
        int32_t max; // 2 bpm
        int32_t min; // 3 bpm
        bool hasData = false;
    };
    struct Steps {
        float avgCadence;  // 1 steps/sec
        float maxCadence;  // 2 steps/sec
        int32_t avgStride; // 3 cm
        int32_t steps;     // 4 count
        bool hasData = false;
    };
    struct Type {
        int32_t type; // 1  1 = running, 4 = bike, 3 = walk
        int32_t ai; // 2 0 = normal, 1 = ai/automatic
        bool hasData = false;
    };
    struct Distance {
        float distance; // 1 meters
        bool hasData = false;
    };
    struct Time {
        int32_t totalDuration; // 1 seconds
        int32_t workoutDuration; // 2 seconds
        int32_t pauseDuration; // 3 seconds
        bool hasData = false;
    };
    struct Pace {
        float avg; // 1 val * 1000 / 60 -> min/km
        float best; // 2 val * 1000 / 60 -> min/km
        bool hasData = false;
    };
    struct Altitude {
        int32_t maxAltitude = 1; // /200 -> meters
        int32_t minAltitude = 2; // /200 -> meters
        int32_t avgAltitude = 3; // /200 -> meters
        int32_t totalClimbing = 4; // cm
        int32_t elevationGain = 5; // cm
        int32_t elevationLoss = 6; // cm
        bool hasData = false;
    };
    struct Calories {
        int32_t calories = 1; // kcal
        bool hasData = false;
    };
    struct HeartRateZones {
        // TODO 1, is always = 1?
        // Zones: N/A, Warm-up, Fat-burn time, Aerobic, Anaerobic, Extreme
        std::vector<int32_t> zoneMax2; // 2 bpm
        std::vector<int32_t> zoneTime; // 1 seconds
        bool hasData = false;
    };
    struct Elevation {
        // TODO 1, 2?
        uint32_t uphillTime;   // 3 sec
        uint32_t downhillTime; // 4 sec
        bool hasData = false;
    };
    struct TrainingEffect {
        float aerobicTrainingEffect;   // 4
        float anaerobicTrainingEffect; // 5
        int32_t currentWorkoutLoad;    // 6
        int32_t maximumOxygenUptake;   // 7 ml/kg/min
        bool hasData = false;
    };
    struct SwimmingData {
        uint32_t style;          // 1 1: breaststroke, 2: freestyle
        uint32_t laps;           // 2
        uint32_t strokes;        // 3
        uint32_t avgDps;         // 4 cm
        uint32_t swolf;          // 5
        uint32_t avgStrokeRate;  // 6  // stroke/min
        uint32_t maxStrokeRate;  // 7 stroke/min
        uint32_t laneLength;     // 8
        uint32_t laneLengthUnit; //  9 0: meter, 1: yard
        bool hasData = false;
    };
    struct WorkoutSummary {
        std::string version;           // 1
        Location location;             // 2
        Type type;                     // 3
        Distance distance;             // 4
        Time time;                     // 7
        SwimmingData swimmingData;     // 9
        Pace pace;                     // 10
        Steps steps;                   // 11
        Altitude altitude;             // 13
        Calories calories;             // 16
        HeartRate heartRate;           // 19
        TrainingEffect trainingEffect; // 21
        HeartRateZones heartRateZones; // 22
        Elevation elevation;           // 23
    };
Filename: None. Size: 4kb. View raw, , hex, or download this file.

This paste expires on 2025-07-01 12:11:07.005944. Pasted through web.