diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 809d7c6..e9691ed 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -154,6 +154,18 @@ message AdminMessage { PAXCOUNTER_CONFIG = 12; } + enum BackupLocation { + /* + * Backup to the internal flash + */ + FLASH = 0; + + /* + * Backup to the SD card + */ + SD = 1; + } + /* * TODO: REPLACE */ @@ -270,6 +282,20 @@ message AdminMessage { */ uint32 set_scale = 23; + /* + * Backup the node's preferences + */ + BackupLocation backup_preferences = 24; + + /* + * Restore the node's preferences + */ + BackupLocation restore_preferences = 25; + + /* + * Remove backups of the node's preferences + */ + BackupLocation remove_backup_preferences = 26; /* * Set the owner for this node */ diff --git a/meshtastic/device_ui.options b/meshtastic/device_ui.options index 56b684b..5aa61d0 100644 --- a/meshtastic/device_ui.options +++ b/meshtastic/device_ui.options @@ -6,3 +6,5 @@ *NodeFilter.hops_away int_size:8 *NodeFilter.channel int_size:8 *NodeHighlight.node_name max_size:16 +*GeoPoint.zoom int_size:8 +*Map.style max_size:20 diff --git a/meshtastic/device_ui.proto b/meshtastic/device_ui.proto index b704e47..9ac40a3 100644 --- a/meshtastic/device_ui.proto +++ b/meshtastic/device_ui.proto @@ -66,6 +66,11 @@ message DeviceUIConfig { * 8 integers for screen calibration data */ bytes calibration_data = 14; + + /* + * Map related data + */ + Map map_data = 15; } @@ -135,6 +140,40 @@ message NodeHighlight { } +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 Theme { /* * Dark diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index 65d4f95..481bfba 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -6,6 +6,7 @@ import "meshtastic/channel.proto"; import "meshtastic/mesh.proto"; import "meshtastic/telemetry.proto"; import "meshtastic/config.proto"; +import "meshtastic/localonly.proto"; import "nanopb.proto"; option csharp_namespace = "Meshtastic.Protobufs"; @@ -221,11 +222,20 @@ message DeviceState { * The mesh's nodes with their available gpio pins for RemoteHardware module */ repeated NodeRemoteHardwarePin node_remote_hardware_pins = 13; +} + +message NodeDatabase { + /* + * A version integer used to invalidate old save files when we make + * incompatible changes This integer is set at build time and is private to + * NodeDB.cpp in the device code. + */ + uint32 version = 1; /* * New lite version of NodeDB to decrease memory footprint */ - repeated NodeInfoLite node_db_lite = 14 [(nanopb).callback_datatype = "std::vector"]; + repeated NodeInfoLite nodes = 2 [(nanopb).callback_datatype = "std::vector"]; } /* @@ -244,3 +254,38 @@ message ChannelFile { */ uint32 version = 2; } + +/* + * The on-disk backup of the node's preferences + */ + message BackupPreferences { + /* + * The version of the backup + */ + uint32 version = 1; + + /* + * The timestamp of the backup (if node has time) + */ + fixed32 timestamp = 2; + + /* + * The node's configuration + */ + LocalConfig config = 3; + + /* + * The node's module configuration + */ + LocalModuleConfig module_config = 4; + + /* + * The node's channels + */ + ChannelFile channels = 5; + + /* + * The node's user (owner) information + */ + User owner = 6; +} \ No newline at end of file diff --git a/meshtastic/module_config.options b/meshtastic/module_config.options index fdde1b3..bf2a5f4 100644 --- a/meshtastic/module_config.options +++ b/meshtastic/module_config.options @@ -2,7 +2,7 @@ *MQTTConfig.address max_size:64 *MQTTConfig.username max_size:64 -*MQTTConfig.password max_size:64 +*MQTTConfig.password max_size:32 *MQTTConfig.root max_size:32 *AudioConfig.ptt_pin int_size:8