syntax = "proto2";
package types;
enum PbDataType {
TYPE_UNDEFINED = 0;
TYPE_INHERITED = 1;
TYPE_ENUM = 2;
TYPE_MILLIS = 3;
TYPE_SECOND = 4;
TYPE_MINUTE = 5;
TYPE_HOUR = 6;
TYPE_HOURS = 7;
TYPE_DAY = 8;
TYPE_MONTH = 9;
TYPE_YEAR = 10;
TYPE_WEIGHT = 11;
TYPE_HEIGHT = 12;
TYPE_VO2MAX = 13;
TYPE_HEARTRATE = 20;
TYPE_HR_PERCENT = 21;
TYPE_HR_RESERVE = 22;
TYPE_SPEED = 23;
TYPE_CADENCE = 24;
TYPE_ALTITUDE = 25;
TYPE_POWER = 26;
TYPE_POWER_LRB = 27;
TYPE_POWER_PI = 28;
TYPE_TEMPERATURE = 29;
TYPE_ACTIVITY = 30;
TYPE_STRIDE_LENGTH = 31;
TYPE_INCLINE = 32;
TYPE_DECLINE = 33;
TYPE_DISTANCE = 52;
TYPE_ENERGY = 53;
TYPE_FAT_PERCENTS = 54;
TYPE_ASCENT = 55;
TYPE_DESCENT = 56;
TYPE_LATITUDE = 57;
TYPE_LONGITUDE = 58;
TYPE_HERTZ = 59;
TYPE_PERCENT = 60;
TYPE_CUMULATED_ACTIVITY_DAY = 61;
TYPE_RUNNING_INDEX = 62;
TYPE_RR_INTERVAL = 63;
TYPE_Z_INDEX = 64;
TYPE_EXERCISE_TARGET_INDEX = 65;
TYPE_TIME_ZONE_OFFSET = 66;
TYPE_WHEEL_SIZE = 67;
TYPE_FITNESS_CLASS = 68;
TYPE_ACCELERATION = 69;
TYPE_CRANK_LENGTH = 70;
TYPE_ANGLE_DEGREE = 71;
TYPE_NEWTON = 72;
TYPE_FUNCTIONAL_THRESHOLD_POWER = 73;
TYPE_CALORIES = 74;
TYPE_SPEED_CALIBRATION_OFFSET = 75;
}
enum PbHeartRateView {
HEART_RATE_VIEW_BPM = 1;
HEART_RATE_VIEW_PERCENTS_OF_HR_RESERVE = 2;
HEART_RATE_VIEW_PERCENTS_OF_MAX_HR = 3;
}
enum PbUnitSystem {
METRIC = 1;
IMPERIAL = 2;
}
enum PbTimeSelection {
TIME_1 = 1;
TIME_2 = 2;
}
enum PbTimeFormat {
TIME_FORMAT_24H = 1;
TIME_FORMAT_12H = 2;
}
enum PbTimeFormatSeparator {
TIME_FORMAT_SEPARATOR_DOT = 1;
TIME_FORMAT_SEPARATOR_COLON = 2;
}
enum PbStartDayOfWeek {
MONDAY = 1;
SATURDAY = 2;
SUNDAY = 3;
}
enum PbDateFormatSeparator {
DOT = 1;
SLASH = 2;
HYPHEN = 3;
}
enum PbDateFormat {
DD_MM_YYYY = 1;
MM_DD_YYYY = 2;
YYYY_MM_DD = 3;
}
enum PbFeatureType {
FEATURE_TYPE_HEART_RATE = 1;
FEATURE_TYPE_RR_INTERVAL = 2;
FEATURE_TYPE_SPEED = 3;
FEATURE_TYPE_DISTANCE = 4;
FEATURE_TYPE_BIKE_CADENCE = 5;
FEATURE_TYPE_BIKE_POWER = 6;
FEATURE_TYPE_GPS_LOCATION = 7;
FEATURE_TYPE_RUNNING_CADENCE = 8;
FEATURE_TYPE_PRESS_TEMPERATURE = 9;
FEATURE_TYPE_ALTITUDE = 10;
FEATURE_TYPE_STEPS = 11;
FEATURE_TYPE_ACTIVITY = 12;
FEATURE_TYPE_STRIDE_LENGTH = 13;
FEATURE_TYPE_RSC_MOVING_TYPE = 14;
FEATURE_TYPE_JUMP_HEIGTH = 15;
FEATURE_TYPE_COMPASS_HEADING = 16;
FEATURE_TYPE_GPS_SPEED = 17;
FEATURE_TYPE_GPS_DISTANCE = 18;
FEATURE_TYPE_GPS_ALTITUDE = 19;
FEATURE_TYPE_BIKE_WHEEL_REVOLUTION = 20;
FEATURE_TYPE_BIKE_CRANK_REVOLUTION = 21;
FEATURE_TYPE_AS_SPEED = 22;
FEATURE_TYPE_AS_CADENCE = 23;
FEATURE_TYPE_AS_DISTANCE = 24;
FEATURE_TYPE_AS_SWR_STATE = 25;
FEATURE_TYPE_BATTERY_LEVEL = 26;
FEATURE_TYPE_FILE_TRANSFER = 27;
FEATURE_TYPE_PUSH_NOTIFICATIONS = 28;
FEATURE_TYPE_WEIGHT_SCALE = 29;
}
enum PbMovingType {
WALKING = 0;
RUNNING = 1;
STANDING = 2;
}
enum PbOperationType {
MULTIPLY = 1;
SUM = 2;
}
enum PbExerciseFeedback {
FEEDBACK_NONE = 1;
FEEDBACK_1 = 2;
FEEDBACK_2 = 3;
FEEDBACK_3 = 4;
FEEDBACK_4 = 5;
FEEDBACK_5 = 6;
FEEDBACK_6 = 7;
FEEDBACK_7 = 8;
FEEDBACK_8 = 9;
FEEDBACK_9 = 10;
FEEDBACK_10 = 11;
FEEDBACK_11 = 12;
FEEDBACK_12 = 13;
FEEDBACK_13 = 14;
FEEDBACK_14 = 15;
FEEDBACK_15 = 16;
FEEDBACK_16 = 17;
FEEDBACK_17 = 18;
}
enum PbHeartRateZoneSettingSource {
HEART_RATE_ZONE_SETTING_SOURCE_DEFAULT = 0;
HEART_RATE_ZONE_SETTING_SOURCE_THRESHOLD = 1;
HEART_RATE_ZONE_SETTING_SOURCE_FREE = 2;
}
enum PbPowerZoneSettingSource {
POWER_ZONE_SETTING_SOURCE_DEFAULT = 0;
POWER_ZONE_SETTING_SOURCE_FREE = 1;
}
enum PbSpeedZoneSettingSource {
SPEED_ZONE_SETTING_SOURCE_DEFAULT = 0;
SPEED_ZONE_SETTING_SOURCE_FREE = 1;
}
enum PbMacType {
MAC_TYPE_PUBLIC = 0;
MAC_TYPE_STATIC = 1;
MAC_TYPE_PRIVATE_NONRESOLVABLE = 2;
MAC_TYPE_PRIVATE_RESOLVABLE = 3;
MAC_TYPE_BT_CLASSIC = 4;
}
enum PbSwimmingStyle {
OTHER = -1;
TURN = 0;
OTHER_SWIMMING = 10;
FREESTYLE = 11;
BREASTSTROKE = 12;
BACKSTROKE = 13;
BUTTERFLY = 14;
}
enum PbSwimmingPoolUnits {
SWIMMING_POOL_METERS = 0;
SWIMMING_POOL_YARDS = 1;
}
enum PbExerciseTargetType {
EXERCISE_TARGET_TYPE_FREE = 0;
EXERCISE_TARGET_TYPE_VOLUME = 1;
EXERCISE_TARGET_TYPE_PHASED = 2;
EXERCISE_TARGET_TYPE_ROUTE = 3;
EXERCISE_TARGET_TYPE_STEADY_RACE_PACE = 4;
EXERCISE_TARGET_TYPE_ROUTE_RACE_PACE = 5;
EXERCISE_TARGET_TYPE_STRAVA_SEGMENT = 6;
}
enum PbDeviceLocation {
DEVICE_LOCATION_UNDEFINED = 0;
DEVICE_LOCATION_OTHER = 1;
DEVICE_LOCATION_WRIST_LEFT = 2;
DEVICE_LOCATION_WRIST_RIGHT = 3;
DEVICE_LOCATION_NECKLACE = 4;
DEVICE_LOCATION_CHEST = 5;
DEVICE_LOCATION_UPPER_BACK = 6;
DEVICE_LOCATION_FOOT_LEFT = 7;
DEVICE_LOCATION_FOOT_RIGHT = 8;
DEVICE_LOCATION_LOWER_ARM_LEFT = 9;
DEVICE_LOCATION_LOWER_ARM_RIGHT = 10;
DEVICE_LOCATION_UPPER_ARM_LEFT = 11;
DEVICE_LOCATION_UPPER_ARM_RIGHT = 12;
DEVICE_LOCATION_BIKE_MOUNT = 13;
}
message PbRangeOptions {
optional int32 min_value = 1 ;
optional int32 max_value = 2 ;
}
message PbDate {
required uint32 year = 1 ;
required uint32 month = 2 ;
required uint32 day = 3 ;
}
message PbTime {
required uint32 hour = 1 ;
required uint32 minute = 2 ;
required uint32 seconds = 3 ;
optional uint32 millis = 4 [default = 0];
}
message PbSystemDateTime {
required PbDate date = 1 ;
required PbTime time = 2 ;
required bool trusted = 3 ;
}
message PbLocalDateTime {
required PbDate date = 1 ;
required PbTime time = 2 ;
required bool OBSOLETE_trusted = 3 ;
optional int32 time_zone_offset = 4 ;
}
message PbDuration {
optional uint32 hours = 1 [default = 0];
optional uint32 minutes = 2 [default = 0];
optional uint32 seconds = 3 [default = 0];
optional uint32 millis = 4 [default = 0];
}
message PbLocation {
required double latitude = 1 ;
required double longitude = 2 ;
optional PbSystemDateTime timestamp = 3 ;
optional PbLocation.Fix fix = 4 [default = FIX_NONE];
optional uint32 satellites = 5 [default = 0];
enum Fix {
FIX_NONE = 0;
FIX_2D = 1;
FIX_3D = 2;
}
}
message PbSensorOffline {
required uint32 start_index = 1 ;
required uint32 stop_index = 2 ;
}
message PbVolume {
required uint32 volume = 1 ;
}
message PbStrideSensorCalibSettings {
required float running_factor = 1 ;
required PbStrideSensorCalibSettings.PbStrideCalibType calib_type = 2 ;
optional PbStrideSensorCalibSettings.PbRunningFactorSource running_factor_source = 3 [default = RUNNING_FACTOR_SOURCE_DEFAULT];
enum PbStrideCalibType {
STRIDE_CALIB_MANUAL = 0;
STRIDE_CALIB_AUTO = 1;
}
enum PbRunningFactorSource {
RUNNING_FACTOR_SOURCE_DEFAULT = 0;
RUNNING_FACTOR_SOURCE_AUTO_CALIBRATION = 1;
RUNNING_FACTOR_SOURCE_MANUAL_CALIBRATION = 2;
}
}
message PbVolumeTarget {
required PbVolumeTarget.PbVolymeTargetType target_type = 1 ;
optional types.PbDuration duration = 2 ;
optional float distance = 3 ;
optional uint32 calories = 4 ;
enum PbVolymeTargetType {
VOLUME_TARGET_TYPE_DURATION = 0;
VOLUME_TARGET_TYPE_DISTANCE = 1;
VOLUME_TARGET_TYPE_CALORIES = 2;
}
}
message PbTrainingLoad {
optional uint32 training_load_val = 1 ;
optional types.PbDuration recovery_time = 2 ;
optional uint32 carbohydrate_consumption = 3 ;
optional uint32 protein_consumption = 4 ;
optional uint32 fat_consumption = 5 ;
}
message PbHeartRateZone {
required uint32 lower_limit = 1 ;
required uint32 higher_limit = 2 ;
}
message PbSpeedZone {
required float lower_limit = 1 ;
required float higher_limit = 2 ;
}
message PbPowerZone {
required uint32 lower_limit = 1 ;
required uint32 higher_limit = 2 ;
}
message PbZones {
repeated PbHeartRateZone heart_rate_zone = 1 ;
repeated PbSpeedZone speed_zone = 2 ;
repeated PbPowerZone power_zone = 3 ;
optional types.PbHeartRateZoneSettingSource heart_rate_setting_source = 10 ;
optional types.PbPowerZoneSettingSource power_setting_source = 11 ;
optional types.PbSpeedZoneSettingSource speed_setting_source = 12 ;
}
message PbBleMac {
required bytes mac = 1 ;
required types.PbMacType type = 2 ;
}
message PbBleDeviceName {
required string name = 1 ;
}
message PbDeviceId {
required string device_id = 1 ;
}
message PbRunningIndex {
required uint32 value = 1 ;
optional types.PbDuration calculation_time = 2 ;
}
message PbSportIdentifier {
required uint64 value = 1 ;
}
message PbOneLineText {
required string text = 1 ;
}
message PbMultiLineText {
required string text = 1 ;
}
message PbLanguageId {
required string language = 1 ;
}
message PbTrainingSessionTargetId {
required uint64 value = 1 ;
optional types.PbSystemDateTime last_modified = 2 ;
}
message PbTrainingSessionFavoriteId {
required uint64 value = 1 ;
optional types.PbSystemDateTime last_modified = 2 ;
}
message PbRouteId {
required uint64 value = 1 ;
}
message PbSwimmingPoolInfo {
optional float pool_length = 1 ;
required types.PbSwimmingPoolUnits swimming_pool_type = 2 ;
}
message PbTrainingProgramId {
required uint64 value = 1 ;
}
message PbEventId {
required uint64 value = 1 ;
}
message PbStravaSegmentTargets {
required types.PbDuration own_best = 1 ;
required types.PbDuration kom_qom = 2 ;
}
message PbStravaSegmentTarget {
required PbStravaSegmentTarget.PbStravaSegmentType strava_segment_type = 1 ;
required PbStravaSegmentTargets strava_segment_targets = 2 ;
enum PbStravaSegmentType {
STRAVA_SEGMENT_TYPE_RIDE = 1;
STRAVA_SEGMENT_TYPE_RUN = 2;
}
}