Garmin Vivomove HR support
- communication protocols
- device support implementation
- download FIT file storage
Features:
- basic connectivity: time sync, battery status, HW/FW version info
- real-time activity tracking
- fitness data sync
- find the device, find the phone
- factory reset
Features implemented but not working:
- notifications: fully implemented, seem to communicate correctly, but not shown on watch
Features implemented partially (not expected to work now):
- weather information (and in future possibly weather alerts)
- music info
- firmware update: only the initial file upload implemented, not used
Things to improve/change:
- Device name hardcoded in `VivomoveHrCoordinator.getSupportedType`, service UUIDs not available
- Download FIT file storage: Should be store (and offer the user to export?) the FIT data forever?
- Obviously, various code improvements, cleanup, etc.
2023-06-15 17:47:42 +02:00
|
|
|
syntax = "proto2";
|
|
|
|
|
|
|
|
package garmin_vivomovehr;
|
|
|
|
|
2023-06-17 15:08:11 +02:00
|
|
|
option java_package = "nodomain.freeyourgadget.gadgetbridge.proto.vivomovehr";
|
Garmin Vivomove HR support
- communication protocols
- device support implementation
- download FIT file storage
Features:
- basic connectivity: time sync, battery status, HW/FW version info
- real-time activity tracking
- fitness data sync
- find the device, find the phone
- factory reset
Features implemented but not working:
- notifications: fully implemented, seem to communicate correctly, but not shown on watch
Features implemented partially (not expected to work now):
- weather information (and in future possibly weather alerts)
- music info
- firmware update: only the initial file upload implemented, not used
Things to improve/change:
- Device name hardcoded in `VivomoveHrCoordinator.getSupportedType`, service UUIDs not available
- Download FIT file storage: Should be store (and offer the user to export?) the FIT data forever?
- Obviously, various code improvements, cleanup, etc.
2023-06-15 17:47:42 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
enum DataType {
|
|
|
|
SIGNIFICANT_LOCATION = 0;
|
|
|
|
GENERAL_LOCATION = 1;
|
|
|
|
REALTIME_TRACKING = 2;
|
|
|
|
INREACH_TRACKING = 3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
message LocationUpdatedSetEnabledResponse {
|
|
|
|
// TODO
|
|
|
|
}
|
|
|
|
|
|
|
|
message LocationUpdatedNotification {
|
|
|
|
repeated LocationData location_data = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message LocationData {
|
|
|
|
// TODO
|
|
|
|
}
|
|
|
|
}
|