1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-02 19:36:14 +02:00
Gadgetbridge/app/src/main/proto/garmin_vivomovehr/gdi_core.proto
Daniele Gobbetti 4363f94661 Garmin protocol: initial refactoring and basic functionalities
This commit takes aims to bring many new garmin devices up to a working status, with basic functionalities such as:
- garmin protocol initialization
- basic message exchange
- support for some messages in Garmin own format
- support for some messages in protobuf format
2024-05-01 23:35:15 +01:00

114 lines
2.8 KiB
Protocol Buffer

syntax = "proto2";
package garmin_vivomovehr;
option java_package = "nodomain.freeyourgadget.gadgetbridge.proto.vivomovehr";
message CoreService {
optional SyncRequest sync_request = 1;
optional SyncResponse sync_response = 2;
optional GetLocationRequest get_location_request = 3;
optional GetLocationResponse get_location_response = 4;
optional LocationUpdatedSetEnabledRequest location_updated_set_enabled_request = 5;
optional LocationUpdatedSetEnabledResponse location_updated_set_enabled_response = 6;
optional LocationUpdatedNotification location_updated_notification = 7;
message SyncRequest {
}
message SyncResponse {
optional ResponseStatus status = 1;
enum ResponseStatus {
UNKNOWN_RESPONSE_STATUS = 0;
OK = 1;
}
}
message GetLocationRequest {
optional RequestType request_type = 1;
enum RequestType {
STANDARD = 0;
EMERGENCY = 1;
}
}
message GetLocationResponse {
optional Status status = 1;
optional LocationData location_data = 2;
enum Status {
OK = 1;
NO_VALID_LOCATION = 2;
LOCATION_SERVICES_UNAVAILABLE = 3;
LOCATION_SERVICES_DISABLED = 4;
TRY_AGAIN_LATER = 5;
}
}
enum DataType {
SIGNIFICANT_LOCATION = 0;
GENERAL_LOCATION = 1;
REALTIME_TRACKING = 2;
INREACH_TRACKING = 3;
TRACKING_EVENT = 4;
}
message LocationUpdatedSetEnabledRequest {
optional bool enabled = 1;
repeated Request requests = 2;
}
message Request {
optional DataType requested = 1;
optional float min_update_threshold = 2;
optional float distance_threshold = 3;
}
message LocationUpdatedSetEnabledResponse {
optional Status status = 1;
repeated Requested requests = 2;
enum Status {
OK = 1;
UNAVAILABLE = 2;
UNKNOWN3 = 3;
UNKNOWN4 = 4;
}
message Requested {
optional DataType requested = 1;
optional RequestedStatus status = 2;
enum RequestedStatus {
OK = 1;
KO = 2;
}
}
}
message LocationUpdatedNotification {
repeated LocationData location_data = 1;
}
message LocationData {
required LatLon position=1;
required float altitude=2;
required uint32 timestamp=3;
required float h_accuracy=4;
required float v_accuracy=5;
required DataType position_type=6;
required float bearing=9;
required float speed=10;
}
message LatLon {
required sint32 lat = 1;
required sint32 lon = 2;
}
}