polar-prost 0.1.0

Protobuf bindings to interact with Polar watches
Documentation
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;
	}
}