syntax = "proto3"; package meshtastic; option csharp_namespace = "Meshtastic.Protobufs"; option go_package = "github.com/meshtastic/go/generated"; option java_outer_classname = "DeviceUIProtos"; option java_package = "com.geeksville.mesh"; option swift_prefix = ""; /* * Protobuf structures for device-ui persistency */ message DeviceUIConfig { /* * A version integer used to invalidate saved files when we make incompatible changes. */ uint32 version = 1; /* * TFT display brightness 1..255 */ uint32 screen_brightness = 2; /* * Screen timeout 0..900 */ uint32 screen_timeout = 3; /* * Screen/Settings lock enabled */ bool screen_lock = 4; bool settings_lock = 5; uint32 pin_code = 6; /* * Color theme */ Theme theme = 7; /* * Audible message, banner and ring tone */ bool alert_enabled = 8; bool banner_enabled = 9; uint32 ring_tone_id = 10; /* * Localization */ Language language = 11; /* * Node list filter */ NodeFilter node_filter = 12; /* * Node list highlightening */ NodeHighlight node_highlight = 13; /* * 8 integers for screen calibration data */ bytes calibration_data = 14; /* * Map related data */ Map map_data = 15; /* * Compass mode */ CompassMode compass_mode = 16; /* * RGB color for BaseUI * 0xRRGGBB format, e.g. 0xFF0000 for red */ uint32 screen_rgb_color = 17; /* * Clockface analog style * true for analog clockface, false for digital clockface */ bool is_clockface_analog = 18; } message NodeFilter { /* * Filter unknown nodes */ bool unknown_switch = 1; /* * Filter offline nodes */ bool offline_switch = 2; /* * Filter nodes w/o public key */ bool public_key_switch = 3; /* * Filter based on hops away */ int32 hops_away = 4; /* * Filter nodes w/o position */ bool position_switch = 5; /* * Filter nodes by matching name string */ string node_name = 6; /* * Filter based on channel */ int32 channel = 7; } message NodeHighlight { /* * Hightlight nodes w/ active chat */ bool chat_switch = 1; /* * Highlight nodes w/ position */ bool position_switch = 2; /* * Highlight nodes w/ telemetry data */ bool telemetry_switch = 3; /* * Highlight nodes w/ iaq data */ bool iaq_switch = 4; /* * Highlight nodes by matching name string */ string node_name = 5; } message GeoPoint { /* * Zoom level */ int32 zoom = 1; /* * Coordinate: latitude */ int32 latitude = 2; /* * Coordinate: longitude */ int32 longitude = 3; } message Map { /* * Home coordinates */ GeoPoint home = 1; /* * Map tile style */ string style = 2; /* * Map scroll follows GPS */ bool follow_gps = 3; } enum CompassMode { /* * Compass with dynamic ring and heading */ DYNAMIC = 0; /* * Compass with fixed ring and heading */ FIXED_RING = 1; /* * Compass with heading and freeze option */ FREEZE_HEADING = 2; } enum Theme { /* * Dark */ DARK = 0; /* * Light */ LIGHT = 1; /* * Red */ RED = 2; } /* * Localization */ enum Language { /* * English */ ENGLISH = 0; /* * French */ FRENCH = 1; /* * German */ GERMAN = 2; /* * Italian */ ITALIAN = 3; /* * Portuguese */ PORTUGUESE = 4; /* * Spanish */ SPANISH = 5; /* * Swedish */ SWEDISH = 6; /* * Finnish */ FINNISH = 7; /* * Polish */ POLISH = 8; /* * Turkish */ TURKISH = 9; /* * Serbian */ SERBIAN = 10; /* * Russian */ RUSSIAN = 11; /* * Dutch */ DUTCH = 12; /* * Greek */ GREEK = 13; /* * Norwegian */ NORWEGIAN = 14; /* * Slovenian */ SLOVENIAN = 15; /* * Ukrainian */ UKRAINIAN = 16; /* * Bulgarian */ BULGARIAN = 17; /* * Simplified Chinese (experimental) */ SIMPLIFIED_CHINESE = 30; /* * Traditional Chinese (experimental) */ TRADITIONAL_CHINESE = 31; }