From 3108b1a8dd729e7059866a62e736174795b980df Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Mon, 25 Mar 2024 10:36:14 -0500 Subject: [PATCH] Updates --- .../FixedPositionCommandHandler.cs | 51 +- .../MqttProxyCommandHandler.cs | 4 +- .../Commands/FixedPositionCommand.cs | 9 +- Meshtastic.Cli/Display/ProtobufPrinter.cs | 2 +- Meshtastic.Cli/Properties/launchSettings.json | 4 +- Meshtastic/Connections/DeviceConnection.cs | 25 +- .../MessageFactories/AdminMessageFactory.cs | 10 + .../MessageFactories/ToRadioMessageFactory.cs | 7 + Meshtastic/Generated/Admin.cs | 309 +- Meshtastic/Generated/Deviceonly.cs | 2582 ----------------- Meshtastic/Generated/Mesh.cs | 660 ++++- Meshtastic/Generated/ModuleConfig.cs | 516 +++- Meshtastic/Generated/Mqtt.cs | 717 ++++- Meshtastic/Generated/Portnums.cs | 15 +- protobufs | 2 +- scripts/regen-protos.bat | 10 +- 16 files changed, 2052 insertions(+), 2871 deletions(-) delete mode 100644 Meshtastic/Generated/Deviceonly.cs diff --git a/Meshtastic.Cli/CommandHandlers/FixedPositionCommandHandler.cs b/Meshtastic.Cli/CommandHandlers/FixedPositionCommandHandler.cs index e9064ab..6d919b3 100644 --- a/Meshtastic.Cli/CommandHandlers/FixedPositionCommandHandler.cs +++ b/Meshtastic.Cli/CommandHandlers/FixedPositionCommandHandler.cs @@ -6,24 +6,19 @@ namespace Meshtastic.Cli.CommandHandlers; -public class FixedPositionCommandHandler : DeviceCommandHandler +public class FixedPositionCommandHandler(decimal latitude, + decimal longitude, + int altitude, + bool clear, + DeviceConnectionContext context, + CommandContext commandContext) : DeviceCommandHandler(context, commandContext) { - private readonly decimal latitude; - private readonly decimal longitude; - private readonly int altitude; + private readonly decimal latitude = latitude; + private readonly decimal longitude = longitude; + private readonly int altitude = altitude; + private readonly bool clear = clear; private readonly decimal divisor = new(1e-7); - public FixedPositionCommandHandler(decimal latitude, - decimal longitude, - int altitude, - DeviceConnectionContext context, - CommandContext commandContext) : base(context, commandContext) - { - this.latitude = latitude; - this.longitude = longitude; - this.altitude = altitude; - } - public async Task Handle() { var wantConfig = new ToRadioMessageFactory().CreateWantConfigMessage(); @@ -35,31 +30,23 @@ public async Task Handle() public override async Task OnCompleted(FromRadio packet, DeviceStateContainer container) { var adminMessageFactory = new AdminMessageFactory(container, Destination); - var positionMessageFactory = new PositionMessageFactory(container, Destination); - await BeginEditSettings(adminMessageFactory); - - var positionMessage = positionMessageFactory.CreatePositionPacket(new Position() + var position = new Position() { LatitudeI = latitude != 0 ? decimal.ToInt32(latitude / divisor) : 0, LongitudeI = longitude != 0 ? decimal.ToInt32(longitude / divisor) : 0, Altitude = altitude, Time = DateTime.Now.GetUnixTimestamp(), Timestamp = DateTime.Now.GetUnixTimestamp(), - }); - await Connection.WriteToRadio(ToRadioMessageFactory.CreateMeshPacketMessage(positionMessage), AnyResponseReceived); - Logger.LogInformation($"Sending position to device..."); - - var positionConfig = container.LocalConfig.Position; - positionConfig.FixedPosition = true; - var adminMessage = adminMessageFactory.CreateSetConfigMessage(positionConfig); - Logger.LogInformation($"Setting Position.FixedPosition to True..."); + }; - await Connection.WriteToRadio(ToRadioMessageFactory.CreateMeshPacketMessage(adminMessage), (fromRadio, container) => - { - return Task.FromResult(fromRadio.GetPayload() != null); - }); + var adminMessage = clear ? adminMessageFactory.RemovedFixedPositionMessage() : adminMessageFactory.CreateFixedPositionMessage(position); + Logger.LogInformation($"Setting fixed position..."); - await CommitEditSettings(adminMessageFactory); + await Connection.WriteToRadio(ToRadioMessageFactory.CreateMeshPacketMessage(adminMessage), + (fromRadio, container) => + { + return Task.FromResult(fromRadio.GetPayload() != null); + }); } } diff --git a/Meshtastic.Cli/CommandHandlers/MqttProxyCommandHandler.cs b/Meshtastic.Cli/CommandHandlers/MqttProxyCommandHandler.cs index 43e1c38..eb17775 100644 --- a/Meshtastic.Cli/CommandHandlers/MqttProxyCommandHandler.cs +++ b/Meshtastic.Cli/CommandHandlers/MqttProxyCommandHandler.cs @@ -80,14 +80,14 @@ await mqttClient.PublishAsync(new MqttApplicationMessageBuilder() }); } - private MqttClientOptions GetMqttClientOptions(DeviceStateContainer container) + private static MqttClientOptions GetMqttClientOptions(DeviceStateContainer container) { var builder = new MqttClientOptionsBuilder() .WithClientId(container.GetDeviceNodeInfo()?.User?.Id ?? container.MyNodeInfo.MyNodeNum.ToString()); var address = container.LocalModuleConfig.Mqtt.Address; var host = address.Split(':').FirstOrDefault() ?? container.LocalModuleConfig.Mqtt.Address; - var port = address.Contains(":") ? address.Split(':').LastOrDefault() : null; + var port = address.Contains(':') ? address.Split(':').LastOrDefault() : null; if (container.LocalModuleConfig.Mqtt.TlsEnabled) { diff --git a/Meshtastic.Cli/Commands/FixedPositionCommand.cs b/Meshtastic.Cli/Commands/FixedPositionCommand.cs index 9c9b480..241ff42 100644 --- a/Meshtastic.Cli/Commands/FixedPositionCommand.cs +++ b/Meshtastic.Cli/Commands/FixedPositionCommand.cs @@ -30,14 +30,19 @@ public FixedPositionCommand(string name, string description, Option port altArg.SetDefaultValue(0); AddArgument(altArg); - this.SetHandler(async (lat, lon, alt, context, commandContext) => + var clearOption = new Option("clear", description: "Clear fixed position"); + clearOption.SetDefaultValue(false); + AddOption(clearOption); + + this.SetHandler(async (lat, lon, alt, clear, context, commandContext) => { - var handler = new FixedPositionCommandHandler(lat, lon, alt, context, commandContext); + var handler = new FixedPositionCommandHandler(lat, lon, alt, clear, context, commandContext); await handler.Handle(); }, latArg, lonArg, altArg, + clearOption, new DeviceConnectionBinder(port, host), new CommandContextBinder(log, output, dest, selectDest)); } diff --git a/Meshtastic.Cli/Display/ProtobufPrinter.cs b/Meshtastic.Cli/Display/ProtobufPrinter.cs index f058cf2..3b69677 100644 --- a/Meshtastic.Cli/Display/ProtobufPrinter.cs +++ b/Meshtastic.Cli/Display/ProtobufPrinter.cs @@ -274,7 +274,7 @@ public void PrintRoute(RepeatedField route) public Panel PrintTrafficCharts() { var myInfo = container.Nodes.FirstOrDefault(n => n.Num == container.MyNodeInfo.MyNodeNum); - var airTimeStats = myInfo != null ? $"Channel Utilization {myInfo.DeviceMetrics.ChannelUtilization:N2}% / Airtime {myInfo.DeviceMetrics.AirUtilTx:N2}%" : String.Empty; + var airTimeStats = myInfo?.DeviceMetrics != null ? $"Channel Utilization {myInfo.DeviceMetrics.ChannelUtilization:N2}% / Airtime {myInfo.DeviceMetrics.AirUtilTx:N2}%" : String.Empty; var byNodeChart = new BreakdownChart() .FullSize(); diff --git a/Meshtastic.Cli/Properties/launchSettings.json b/Meshtastic.Cli/Properties/launchSettings.json index 239a27b..c6c1cdc 100644 --- a/Meshtastic.Cli/Properties/launchSettings.json +++ b/Meshtastic.Cli/Properties/launchSettings.json @@ -78,7 +78,7 @@ }, "fixed-position": { "commandName": "Project", - "commandLineArgs": "fixed-position 34.000 -90.023 123 --log debug" + "commandLineArgs": "fixed-position 34.000 -90.023 123 --log debug --port COM3" }, "text": { "commandName": "Project", @@ -122,7 +122,7 @@ }, "live": { "commandName": "Project", - "commandLineArgs": "live" + "commandLineArgs": "live --port COM3" }, "live host": { "commandName": "Project", diff --git a/Meshtastic/Connections/DeviceConnection.cs b/Meshtastic/Connections/DeviceConnection.cs index 66841bd..30a4e19 100644 --- a/Meshtastic/Connections/DeviceConnection.cs +++ b/Meshtastic/Connections/DeviceConnection.cs @@ -1,25 +1,21 @@ using Meshtastic.Data; +using Meshtastic.Data.MessageFactories; using Meshtastic.Extensions; using Meshtastic.Protobufs; using Microsoft.Extensions.Logging; namespace Meshtastic.Connections; -public abstract class DeviceConnection +public abstract class DeviceConnection(ILogger logger) { - protected ILogger Logger { get; set; } + protected ILogger Logger { get; set; } = logger; + public ToRadioMessageFactory ToRadioFactory { get; private set; } = new ToRadioMessageFactory(); public DeviceStateContainer DeviceStateContainer { get; set; } = new DeviceStateContainer(); - protected List Buffer { get; set; } = new List(); + protected List Buffer { get; set; } = []; protected int PacketLength { get; set; } - public DeviceConnection(ILogger logger) + public DeviceConnection(ILogger logger, DeviceStateContainer container) : this(logger) { - Logger = logger; - } - - public DeviceConnection(ILogger logger, DeviceStateContainer container) - { - Logger = logger; DeviceStateContainer = container; } @@ -64,6 +60,13 @@ protected async Task ParsePackets(byte item, Func() != null) + { + Logger.LogDebug($"Sending heartbeat"); + await WriteToRadio(ToRadioFactory.CreateKeepAliveMessage()); + } + if (await isComplete(fromRadio, DeviceStateContainer)) { Buffer.Clear(); @@ -91,6 +94,8 @@ protected void VerboseLogPacket(ToRadio toRadio) toRadio.GetPayload()?.ToString() ?? toRadio.GetPayload()?.ToString() ?? toRadio.GetPayload()?.ToString() ?? + toRadio.GetPayload()?.ToString() ?? + toRadio.GetPayload()?.ToString() ?? toRadio.GetPayload()?.ToString(); if (!String.IsNullOrWhiteSpace(payload)) diff --git a/Meshtastic/Data/MessageFactories/AdminMessageFactory.cs b/Meshtastic/Data/MessageFactories/AdminMessageFactory.cs index 67e23e6..4656bf5 100644 --- a/Meshtastic/Data/MessageFactories/AdminMessageFactory.cs +++ b/Meshtastic/Data/MessageFactories/AdminMessageFactory.cs @@ -141,4 +141,14 @@ public MeshPacket CreateSetOwnerMessage(User user) { return GetNewMeshPacket(new AdminMessage() { SetOwner = user }); } + + public MeshPacket CreateFixedPositionMessage(Position position) + { + return GetNewMeshPacket(new AdminMessage() { SetFixedPosition = position }); + } + + public MeshPacket RemovedFixedPositionMessage() + { + return GetNewMeshPacket(new AdminMessage() { RemoveFixedPosition = true }); + } } \ No newline at end of file diff --git a/Meshtastic/Data/MessageFactories/ToRadioMessageFactory.cs b/Meshtastic/Data/MessageFactories/ToRadioMessageFactory.cs index 117d49f..ec0c07d 100644 --- a/Meshtastic/Data/MessageFactories/ToRadioMessageFactory.cs +++ b/Meshtastic/Data/MessageFactories/ToRadioMessageFactory.cs @@ -10,6 +10,13 @@ public ToRadioMessageFactory() { } + // Create a ToRadio message with a empty payload + public ToRadio CreateKeepAliveMessage() => + new() + { + Heartbeat = new Heartbeat() + }; + public ToRadio CreateWantConfigMessage() => new() { diff --git a/Meshtastic/Generated/Admin.cs b/Meshtastic/Generated/Admin.cs index e583001..be5249c 100644 --- a/Meshtastic/Generated/Admin.cs +++ b/Meshtastic/Generated/Admin.cs @@ -26,67 +26,69 @@ static AdminReflection() { string.Concat( "ChZtZXNodGFzdGljL2FkbWluLnByb3RvEgptZXNodGFzdGljGhhtZXNodGFz", "dGljL2NoYW5uZWwucHJvdG8aF21lc2h0YXN0aWMvY29uZmlnLnByb3RvGiJt", - "ZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvGhttZXNodGFzdGlj", - "L2RldmljZW9ubHkucHJvdG8aFW1lc2h0YXN0aWMvbWVzaC5wcm90bxoebWVz", - "aHRhc3RpYy9tb2R1bGVfY29uZmlnLnByb3RvIrwQCgxBZG1pbk1lc3NhZ2US", - "HQoTZ2V0X2NoYW5uZWxfcmVxdWVzdBgBIAEoDUgAEjMKFGdldF9jaGFubmVs", - "X3Jlc3BvbnNlGAIgASgLMhMubWVzaHRhc3RpYy5DaGFubmVsSAASGwoRZ2V0", - "X293bmVyX3JlcXVlc3QYAyABKAhIABIuChJnZXRfb3duZXJfcmVzcG9uc2UY", - "BCABKAsyEC5tZXNodGFzdGljLlVzZXJIABJBChJnZXRfY29uZmlnX3JlcXVl", - "c3QYBSABKA4yIy5tZXNodGFzdGljLkFkbWluTWVzc2FnZS5Db25maWdUeXBl", - "SAASMQoTZ2V0X2NvbmZpZ19yZXNwb25zZRgGIAEoCzISLm1lc2h0YXN0aWMu", - "Q29uZmlnSAASTgoZZ2V0X21vZHVsZV9jb25maWdfcmVxdWVzdBgHIAEoDjIp", - "Lm1lc2h0YXN0aWMuQWRtaW5NZXNzYWdlLk1vZHVsZUNvbmZpZ1R5cGVIABI+", - "ChpnZXRfbW9kdWxlX2NvbmZpZ19yZXNwb25zZRgIIAEoCzIYLm1lc2h0YXN0", - "aWMuTW9kdWxlQ29uZmlnSAASNAoqZ2V0X2Nhbm5lZF9tZXNzYWdlX21vZHVs", - "ZV9tZXNzYWdlc19yZXF1ZXN0GAogASgISAASNQorZ2V0X2Nhbm5lZF9tZXNz", - "YWdlX21vZHVsZV9tZXNzYWdlc19yZXNwb25zZRgLIAEoCUgAEiUKG2dldF9k", - "ZXZpY2VfbWV0YWRhdGFfcmVxdWVzdBgMIAEoCEgAEkIKHGdldF9kZXZpY2Vf", - "bWV0YWRhdGFfcmVzcG9uc2UYDSABKAsyGi5tZXNodGFzdGljLkRldmljZU1l", - "dGFkYXRhSAASHgoUZ2V0X3Jpbmd0b25lX3JlcXVlc3QYDiABKAhIABIfChVn", - "ZXRfcmluZ3RvbmVfcmVzcG9uc2UYDyABKAlIABIuCiRnZXRfZGV2aWNlX2Nv", - "bm5lY3Rpb25fc3RhdHVzX3JlcXVlc3QYECABKAhIABJTCiVnZXRfZGV2aWNl", - "X2Nvbm5lY3Rpb25fc3RhdHVzX3Jlc3BvbnNlGBEgASgLMiIubWVzaHRhc3Rp", - "Yy5EZXZpY2VDb25uZWN0aW9uU3RhdHVzSAASMQoMc2V0X2hhbV9tb2RlGBIg", - "ASgLMhkubWVzaHRhc3RpYy5IYW1QYXJhbWV0ZXJzSAASLwolZ2V0X25vZGVf", - "cmVtb3RlX2hhcmR3YXJlX3BpbnNfcmVxdWVzdBgTIAEoCEgAElwKJmdldF9u", - "b2RlX3JlbW90ZV9oYXJkd2FyZV9waW5zX3Jlc3BvbnNlGBQgASgLMioubWVz", - "aHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdhcmVQaW5zUmVzcG9uc2VIABIgChZl", - "bnRlcl9kZnVfbW9kZV9yZXF1ZXN0GBUgASgISAASHQoTZGVsZXRlX2ZpbGVf", - "cmVxdWVzdBgWIAEoCUgAEiUKCXNldF9vd25lchggIAEoCzIQLm1lc2h0YXN0", - "aWMuVXNlckgAEioKC3NldF9jaGFubmVsGCEgASgLMhMubWVzaHRhc3RpYy5D", - "aGFubmVsSAASKAoKc2V0X2NvbmZpZxgiIAEoCzISLm1lc2h0YXN0aWMuQ29u", - "ZmlnSAASNQoRc2V0X21vZHVsZV9jb25maWcYIyABKAsyGC5tZXNodGFzdGlj", - "Lk1vZHVsZUNvbmZpZ0gAEiwKInNldF9jYW5uZWRfbWVzc2FnZV9tb2R1bGVf", - "bWVzc2FnZXMYJCABKAlIABIeChRzZXRfcmluZ3RvbmVfbWVzc2FnZRglIAEo", - "CUgAEhsKEXJlbW92ZV9ieV9ub2RlbnVtGCYgASgNSAASHQoTYmVnaW5fZWRp", - "dF9zZXR0aW5ncxhAIAEoCEgAEh4KFGNvbW1pdF9lZGl0X3NldHRpbmdzGEEg", - "ASgISAASHAoScmVib290X290YV9zZWNvbmRzGF8gASgFSAASGAoOZXhpdF9z", - "aW11bGF0b3IYYCABKAhIABIYCg5yZWJvb3Rfc2Vjb25kcxhhIAEoBUgAEhoK", - "EHNodXRkb3duX3NlY29uZHMYYiABKAVIABIXCg1mYWN0b3J5X3Jlc2V0GGMg", - "ASgFSAASFgoMbm9kZWRiX3Jlc2V0GGQgASgFSAAilQEKCkNvbmZpZ1R5cGUS", - "EQoNREVWSUNFX0NPTkZJRxAAEhMKD1BPU0lUSU9OX0NPTkZJRxABEhAKDFBP", - "V0VSX0NPTkZJRxACEhIKDk5FVFdPUktfQ09ORklHEAMSEgoORElTUExBWV9D", - "T05GSUcQBBIPCgtMT1JBX0NPTkZJRxAFEhQKEEJMVUVUT09USF9DT05GSUcQ", - "BiK7AgoQTW9kdWxlQ29uZmlnVHlwZRIPCgtNUVRUX0NPTkZJRxAAEhEKDVNF", - "UklBTF9DT05GSUcQARITCg9FWFROT1RJRl9DT05GSUcQAhIXChNTVE9SRUZP", - "UldBUkRfQ09ORklHEAMSFAoQUkFOR0VURVNUX0NPTkZJRxAEEhQKEFRFTEVN", - "RVRSWV9DT05GSUcQBRIUChBDQU5ORURNU0dfQ09ORklHEAYSEAoMQVVESU9f", - "Q09ORklHEAcSGQoVUkVNT1RFSEFSRFdBUkVfQ09ORklHEAgSFwoTTkVJR0hC", - "T1JJTkZPX0NPTkZJRxAJEhoKFkFNQklFTlRMSUdIVElOR19DT05GSUcQChIa", - "ChZERVRFQ1RJT05TRU5TT1JfQ09ORklHEAsSFQoRUEFYQ09VTlRFUl9DT05G", - "SUcQDEIRCg9wYXlsb2FkX3ZhcmlhbnQiWwoNSGFtUGFyYW1ldGVycxIRCglj", - "YWxsX3NpZ24YASABKAkSEAoIdHhfcG93ZXIYAiABKAUSEQoJZnJlcXVlbmN5", - "GAMgASgCEhIKCnNob3J0X25hbWUYBCABKAkiZgoeTm9kZVJlbW90ZUhhcmR3", - "YXJlUGluc1Jlc3BvbnNlEkQKGW5vZGVfcmVtb3RlX2hhcmR3YXJlX3BpbnMY", - "ASADKAsyIS5tZXNodGFzdGljLk5vZGVSZW1vdGVIYXJkd2FyZVBpbkJgChNj", - "b20uZ2Vla3N2aWxsZS5tZXNoQgtBZG1pblByb3Rvc1oiZ2l0aHViLmNvbS9t", - "ZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZz", - "ugIAYgZwcm90bzM=")); + "ZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvGhVtZXNodGFzdGlj", + "L21lc2gucHJvdG8aHm1lc2h0YXN0aWMvbW9kdWxlX2NvbmZpZy5wcm90byLO", + "EQoMQWRtaW5NZXNzYWdlEh0KE2dldF9jaGFubmVsX3JlcXVlc3QYASABKA1I", + "ABIzChRnZXRfY2hhbm5lbF9yZXNwb25zZRgCIAEoCzITLm1lc2h0YXN0aWMu", + "Q2hhbm5lbEgAEhsKEWdldF9vd25lcl9yZXF1ZXN0GAMgASgISAASLgoSZ2V0", + "X293bmVyX3Jlc3BvbnNlGAQgASgLMhAubWVzaHRhc3RpYy5Vc2VySAASQQoS", + "Z2V0X2NvbmZpZ19yZXF1ZXN0GAUgASgOMiMubWVzaHRhc3RpYy5BZG1pbk1l", + "c3NhZ2UuQ29uZmlnVHlwZUgAEjEKE2dldF9jb25maWdfcmVzcG9uc2UYBiAB", + "KAsyEi5tZXNodGFzdGljLkNvbmZpZ0gAEk4KGWdldF9tb2R1bGVfY29uZmln", + "X3JlcXVlc3QYByABKA4yKS5tZXNodGFzdGljLkFkbWluTWVzc2FnZS5Nb2R1", + "bGVDb25maWdUeXBlSAASPgoaZ2V0X21vZHVsZV9jb25maWdfcmVzcG9uc2UY", + "CCABKAsyGC5tZXNodGFzdGljLk1vZHVsZUNvbmZpZ0gAEjQKKmdldF9jYW5u", + "ZWRfbWVzc2FnZV9tb2R1bGVfbWVzc2FnZXNfcmVxdWVzdBgKIAEoCEgAEjUK", + "K2dldF9jYW5uZWRfbWVzc2FnZV9tb2R1bGVfbWVzc2FnZXNfcmVzcG9uc2UY", + "CyABKAlIABIlChtnZXRfZGV2aWNlX21ldGFkYXRhX3JlcXVlc3QYDCABKAhI", + "ABJCChxnZXRfZGV2aWNlX21ldGFkYXRhX3Jlc3BvbnNlGA0gASgLMhoubWVz", + "aHRhc3RpYy5EZXZpY2VNZXRhZGF0YUgAEh4KFGdldF9yaW5ndG9uZV9yZXF1", + "ZXN0GA4gASgISAASHwoVZ2V0X3Jpbmd0b25lX3Jlc3BvbnNlGA8gASgJSAAS", + "LgokZ2V0X2RldmljZV9jb25uZWN0aW9uX3N0YXR1c19yZXF1ZXN0GBAgASgI", + "SAASUwolZ2V0X2RldmljZV9jb25uZWN0aW9uX3N0YXR1c19yZXNwb25zZRgR", + "IAEoCzIiLm1lc2h0YXN0aWMuRGV2aWNlQ29ubmVjdGlvblN0YXR1c0gAEjEK", + "DHNldF9oYW1fbW9kZRgSIAEoCzIZLm1lc2h0YXN0aWMuSGFtUGFyYW1ldGVy", + "c0gAEi8KJWdldF9ub2RlX3JlbW90ZV9oYXJkd2FyZV9waW5zX3JlcXVlc3QY", + "EyABKAhIABJcCiZnZXRfbm9kZV9yZW1vdGVfaGFyZHdhcmVfcGluc19yZXNw", + "b25zZRgUIAEoCzIqLm1lc2h0YXN0aWMuTm9kZVJlbW90ZUhhcmR3YXJlUGlu", + "c1Jlc3BvbnNlSAASIAoWZW50ZXJfZGZ1X21vZGVfcmVxdWVzdBgVIAEoCEgA", + "Eh0KE2RlbGV0ZV9maWxlX3JlcXVlc3QYFiABKAlIABIlCglzZXRfb3duZXIY", + "ICABKAsyEC5tZXNodGFzdGljLlVzZXJIABIqCgtzZXRfY2hhbm5lbBghIAEo", + "CzITLm1lc2h0YXN0aWMuQ2hhbm5lbEgAEigKCnNldF9jb25maWcYIiABKAsy", + "Ei5tZXNodGFzdGljLkNvbmZpZ0gAEjUKEXNldF9tb2R1bGVfY29uZmlnGCMg", + "ASgLMhgubWVzaHRhc3RpYy5Nb2R1bGVDb25maWdIABIsCiJzZXRfY2FubmVk", + "X21lc3NhZ2VfbW9kdWxlX21lc3NhZ2VzGCQgASgJSAASHgoUc2V0X3Jpbmd0", + "b25lX21lc3NhZ2UYJSABKAlIABIbChFyZW1vdmVfYnlfbm9kZW51bRgmIAEo", + "DUgAEhsKEXNldF9mYXZvcml0ZV9ub2RlGCcgASgNSAASHgoUcmVtb3ZlX2Zh", + "dm9yaXRlX25vZGUYKCABKA1IABIyChJzZXRfZml4ZWRfcG9zaXRpb24YKSAB", + "KAsyFC5tZXNodGFzdGljLlBvc2l0aW9uSAASHwoVcmVtb3ZlX2ZpeGVkX3Bv", + "c2l0aW9uGCogASgISAASHQoTYmVnaW5fZWRpdF9zZXR0aW5ncxhAIAEoCEgA", + "Eh4KFGNvbW1pdF9lZGl0X3NldHRpbmdzGEEgASgISAASHAoScmVib290X290", + "YV9zZWNvbmRzGF8gASgFSAASGAoOZXhpdF9zaW11bGF0b3IYYCABKAhIABIY", + "Cg5yZWJvb3Rfc2Vjb25kcxhhIAEoBUgAEhoKEHNodXRkb3duX3NlY29uZHMY", + "YiABKAVIABIXCg1mYWN0b3J5X3Jlc2V0GGMgASgFSAASFgoMbm9kZWRiX3Jl", + "c2V0GGQgASgFSAAilQEKCkNvbmZpZ1R5cGUSEQoNREVWSUNFX0NPTkZJRxAA", + "EhMKD1BPU0lUSU9OX0NPTkZJRxABEhAKDFBPV0VSX0NPTkZJRxACEhIKDk5F", + "VFdPUktfQ09ORklHEAMSEgoORElTUExBWV9DT05GSUcQBBIPCgtMT1JBX0NP", + "TkZJRxAFEhQKEEJMVUVUT09USF9DT05GSUcQBiK7AgoQTW9kdWxlQ29uZmln", + "VHlwZRIPCgtNUVRUX0NPTkZJRxAAEhEKDVNFUklBTF9DT05GSUcQARITCg9F", + "WFROT1RJRl9DT05GSUcQAhIXChNTVE9SRUZPUldBUkRfQ09ORklHEAMSFAoQ", + "UkFOR0VURVNUX0NPTkZJRxAEEhQKEFRFTEVNRVRSWV9DT05GSUcQBRIUChBD", + "QU5ORURNU0dfQ09ORklHEAYSEAoMQVVESU9fQ09ORklHEAcSGQoVUkVNT1RF", + "SEFSRFdBUkVfQ09ORklHEAgSFwoTTkVJR0hCT1JJTkZPX0NPTkZJRxAJEhoK", + "FkFNQklFTlRMSUdIVElOR19DT05GSUcQChIaChZERVRFQ1RJT05TRU5TT1Jf", + "Q09ORklHEAsSFQoRUEFYQ09VTlRFUl9DT05GSUcQDEIRCg9wYXlsb2FkX3Zh", + "cmlhbnQiWwoNSGFtUGFyYW1ldGVycxIRCgljYWxsX3NpZ24YASABKAkSEAoI", + "dHhfcG93ZXIYAiABKAUSEQoJZnJlcXVlbmN5GAMgASgCEhIKCnNob3J0X25h", + "bWUYBCABKAkiZgoeTm9kZVJlbW90ZUhhcmR3YXJlUGluc1Jlc3BvbnNlEkQK", + "GW5vZGVfcmVtb3RlX2hhcmR3YXJlX3BpbnMYASADKAsyIS5tZXNodGFzdGlj", + "Lk5vZGVSZW1vdGVIYXJkd2FyZVBpbkJgChNjb20uZ2Vla3N2aWxsZS5tZXNo", + "QgtBZG1pblByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVy", + "YXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.ChannelReflection.Descriptor, global::Meshtastic.Protobufs.ConfigReflection.Descriptor, global::Meshtastic.Protobufs.ConnectionStatusReflection.Descriptor, global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor, global::Meshtastic.Protobufs.MeshReflection.Descriptor, global::Meshtastic.Protobufs.ModuleConfigReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.ChannelReflection.Descriptor, global::Meshtastic.Protobufs.ConfigReflection.Descriptor, global::Meshtastic.Protobufs.ConnectionStatusReflection.Descriptor, global::Meshtastic.Protobufs.MeshReflection.Descriptor, global::Meshtastic.Protobufs.ModuleConfigReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.AdminMessage), global::Meshtastic.Protobufs.AdminMessage.Parser, new[]{ "GetChannelRequest", "GetChannelResponse", "GetOwnerRequest", "GetOwnerResponse", "GetConfigRequest", "GetConfigResponse", "GetModuleConfigRequest", "GetModuleConfigResponse", "GetCannedMessageModuleMessagesRequest", "GetCannedMessageModuleMessagesResponse", "GetDeviceMetadataRequest", "GetDeviceMetadataResponse", "GetRingtoneRequest", "GetRingtoneResponse", "GetDeviceConnectionStatusRequest", "GetDeviceConnectionStatusResponse", "SetHamMode", "GetNodeRemoteHardwarePinsRequest", "GetNodeRemoteHardwarePinsResponse", "EnterDfuModeRequest", "DeleteFileRequest", "SetOwner", "SetChannel", "SetConfig", "SetModuleConfig", "SetCannedMessageModuleMessages", "SetRingtoneMessage", "RemoveByNodenum", "BeginEditSettings", "CommitEditSettings", "RebootOtaSeconds", "ExitSimulator", "RebootSeconds", "ShutdownSeconds", "FactoryReset", "NodedbReset" }, new[]{ "PayloadVariant" }, new[]{ typeof(global::Meshtastic.Protobufs.AdminMessage.Types.ConfigType), typeof(global::Meshtastic.Protobufs.AdminMessage.Types.ModuleConfigType) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.AdminMessage), global::Meshtastic.Protobufs.AdminMessage.Parser, new[]{ "GetChannelRequest", "GetChannelResponse", "GetOwnerRequest", "GetOwnerResponse", "GetConfigRequest", "GetConfigResponse", "GetModuleConfigRequest", "GetModuleConfigResponse", "GetCannedMessageModuleMessagesRequest", "GetCannedMessageModuleMessagesResponse", "GetDeviceMetadataRequest", "GetDeviceMetadataResponse", "GetRingtoneRequest", "GetRingtoneResponse", "GetDeviceConnectionStatusRequest", "GetDeviceConnectionStatusResponse", "SetHamMode", "GetNodeRemoteHardwarePinsRequest", "GetNodeRemoteHardwarePinsResponse", "EnterDfuModeRequest", "DeleteFileRequest", "SetOwner", "SetChannel", "SetConfig", "SetModuleConfig", "SetCannedMessageModuleMessages", "SetRingtoneMessage", "RemoveByNodenum", "SetFavoriteNode", "RemoveFavoriteNode", "SetFixedPosition", "RemoveFixedPosition", "BeginEditSettings", "CommitEditSettings", "RebootOtaSeconds", "ExitSimulator", "RebootSeconds", "ShutdownSeconds", "FactoryReset", "NodedbReset" }, new[]{ "PayloadVariant" }, new[]{ typeof(global::Meshtastic.Protobufs.AdminMessage.Types.ConfigType), typeof(global::Meshtastic.Protobufs.AdminMessage.Types.ModuleConfigType) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.HamParameters), global::Meshtastic.Protobufs.HamParameters.Parser, new[]{ "CallSign", "TxPower", "Frequency", "ShortName" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeRemoteHardwarePinsResponse), global::Meshtastic.Protobufs.NodeRemoteHardwarePinsResponse.Parser, new[]{ "NodeRemoteHardwarePins" }, null, null, null, null) })); @@ -220,6 +222,18 @@ public AdminMessage(AdminMessage other) : this() { case PayloadVariantOneofCase.RemoveByNodenum: RemoveByNodenum = other.RemoveByNodenum; break; + case PayloadVariantOneofCase.SetFavoriteNode: + SetFavoriteNode = other.SetFavoriteNode; + break; + case PayloadVariantOneofCase.RemoveFavoriteNode: + RemoveFavoriteNode = other.RemoveFavoriteNode; + break; + case PayloadVariantOneofCase.SetFixedPosition: + SetFixedPosition = other.SetFixedPosition.Clone(); + break; + case PayloadVariantOneofCase.RemoveFixedPosition: + RemoveFixedPosition = other.RemoveFixedPosition; + break; case PayloadVariantOneofCase.BeginEditSettings: BeginEditSettings = other.BeginEditSettings; break; @@ -709,6 +723,70 @@ public uint RemoveByNodenum { } } + /// Field number for the "set_favorite_node" field. + public const int SetFavoriteNodeFieldNumber = 39; + /// + /// + /// Set specified node-num to be favorited on the NodeDB on the device + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint SetFavoriteNode { + get { return payloadVariantCase_ == PayloadVariantOneofCase.SetFavoriteNode ? (uint) payloadVariant_ : 0; } + set { + payloadVariant_ = value; + payloadVariantCase_ = PayloadVariantOneofCase.SetFavoriteNode; + } + } + + /// Field number for the "remove_favorite_node" field. + public const int RemoveFavoriteNodeFieldNumber = 40; + /// + /// + /// Set specified node-num to be un-favorited on the NodeDB on the device + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint RemoveFavoriteNode { + get { return payloadVariantCase_ == PayloadVariantOneofCase.RemoveFavoriteNode ? (uint) payloadVariant_ : 0; } + set { + payloadVariant_ = value; + payloadVariantCase_ = PayloadVariantOneofCase.RemoveFavoriteNode; + } + } + + /// Field number for the "set_fixed_position" field. + public const int SetFixedPositionFieldNumber = 41; + /// + /// + /// Set fixed position data on the node and then set the position.fixed_position = true + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Position SetFixedPosition { + get { return payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition ? (global::Meshtastic.Protobufs.Position) payloadVariant_ : null; } + set { + payloadVariant_ = value; + payloadVariantCase_ = value == null ? PayloadVariantOneofCase.None : PayloadVariantOneofCase.SetFixedPosition; + } + } + + /// Field number for the "remove_fixed_position" field. + public const int RemoveFixedPositionFieldNumber = 42; + /// + /// + /// Clear fixed position coordinates and then set position.fixed_position = false + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool RemoveFixedPosition { + get { return payloadVariantCase_ == PayloadVariantOneofCase.RemoveFixedPosition ? (bool) payloadVariant_ : false; } + set { + payloadVariant_ = value; + payloadVariantCase_ = PayloadVariantOneofCase.RemoveFixedPosition; + } + } + /// Field number for the "begin_edit_settings" field. public const int BeginEditSettingsFieldNumber = 64; /// @@ -872,6 +950,10 @@ public enum PayloadVariantOneofCase { SetCannedMessageModuleMessages = 36, SetRingtoneMessage = 37, RemoveByNodenum = 38, + SetFavoriteNode = 39, + RemoveFavoriteNode = 40, + SetFixedPosition = 41, + RemoveFixedPosition = 42, BeginEditSettings = 64, CommitEditSettings = 65, RebootOtaSeconds = 95, @@ -938,6 +1020,10 @@ public bool Equals(AdminMessage other) { if (SetCannedMessageModuleMessages != other.SetCannedMessageModuleMessages) return false; if (SetRingtoneMessage != other.SetRingtoneMessage) return false; if (RemoveByNodenum != other.RemoveByNodenum) return false; + if (SetFavoriteNode != other.SetFavoriteNode) return false; + if (RemoveFavoriteNode != other.RemoveFavoriteNode) return false; + if (!object.Equals(SetFixedPosition, other.SetFixedPosition)) return false; + if (RemoveFixedPosition != other.RemoveFixedPosition) return false; if (BeginEditSettings != other.BeginEditSettings) return false; if (CommitEditSettings != other.CommitEditSettings) return false; if (RebootOtaSeconds != other.RebootOtaSeconds) return false; @@ -982,6 +1068,10 @@ public override int GetHashCode() { if (payloadVariantCase_ == PayloadVariantOneofCase.SetCannedMessageModuleMessages) hash ^= SetCannedMessageModuleMessages.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetRingtoneMessage) hash ^= SetRingtoneMessage.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveByNodenum) hash ^= RemoveByNodenum.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFavoriteNode) hash ^= SetFavoriteNode.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFavoriteNode) hash ^= RemoveFavoriteNode.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) hash ^= SetFixedPosition.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFixedPosition) hash ^= RemoveFixedPosition.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.BeginEditSettings) hash ^= BeginEditSettings.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.CommitEditSettings) hash ^= CommitEditSettings.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.RebootOtaSeconds) hash ^= RebootOtaSeconds.GetHashCode(); @@ -1121,6 +1211,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(176, 2); output.WriteUInt32(RemoveByNodenum); } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFavoriteNode) { + output.WriteRawTag(184, 2); + output.WriteUInt32(SetFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFavoriteNode) { + output.WriteRawTag(192, 2); + output.WriteUInt32(RemoveFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) { + output.WriteRawTag(202, 2); + output.WriteMessage(SetFixedPosition); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFixedPosition) { + output.WriteRawTag(208, 2); + output.WriteBool(RemoveFixedPosition); + } if (payloadVariantCase_ == PayloadVariantOneofCase.BeginEditSettings) { output.WriteRawTag(128, 4); output.WriteBool(BeginEditSettings); @@ -1275,6 +1381,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(176, 2); output.WriteUInt32(RemoveByNodenum); } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFavoriteNode) { + output.WriteRawTag(184, 2); + output.WriteUInt32(SetFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFavoriteNode) { + output.WriteRawTag(192, 2); + output.WriteUInt32(RemoveFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) { + output.WriteRawTag(202, 2); + output.WriteMessage(SetFixedPosition); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFixedPosition) { + output.WriteRawTag(208, 2); + output.WriteBool(RemoveFixedPosition); + } if (payloadVariantCase_ == PayloadVariantOneofCase.BeginEditSettings) { output.WriteRawTag(128, 4); output.WriteBool(BeginEditSettings); @@ -1401,6 +1523,18 @@ public int CalculateSize() { if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveByNodenum) { size += 2 + pb::CodedOutputStream.ComputeUInt32Size(RemoveByNodenum); } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFavoriteNode) { + size += 2 + pb::CodedOutputStream.ComputeUInt32Size(SetFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFavoriteNode) { + size += 2 + pb::CodedOutputStream.ComputeUInt32Size(RemoveFavoriteNode); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetFixedPosition); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.RemoveFixedPosition) { + size += 2 + 1; + } if (payloadVariantCase_ == PayloadVariantOneofCase.BeginEditSettings) { size += 2 + 1; } @@ -1558,6 +1692,21 @@ public void MergeFrom(AdminMessage other) { case PayloadVariantOneofCase.RemoveByNodenum: RemoveByNodenum = other.RemoveByNodenum; break; + case PayloadVariantOneofCase.SetFavoriteNode: + SetFavoriteNode = other.SetFavoriteNode; + break; + case PayloadVariantOneofCase.RemoveFavoriteNode: + RemoveFavoriteNode = other.RemoveFavoriteNode; + break; + case PayloadVariantOneofCase.SetFixedPosition: + if (SetFixedPosition == null) { + SetFixedPosition = new global::Meshtastic.Protobufs.Position(); + } + SetFixedPosition.MergeFrom(other.SetFixedPosition); + break; + case PayloadVariantOneofCase.RemoveFixedPosition: + RemoveFixedPosition = other.RemoveFixedPosition; + break; case PayloadVariantOneofCase.BeginEditSettings: BeginEditSettings = other.BeginEditSettings; break; @@ -1773,6 +1922,27 @@ public void MergeFrom(pb::CodedInputStream input) { RemoveByNodenum = input.ReadUInt32(); break; } + case 312: { + SetFavoriteNode = input.ReadUInt32(); + break; + } + case 320: { + RemoveFavoriteNode = input.ReadUInt32(); + break; + } + case 330: { + global::Meshtastic.Protobufs.Position subBuilder = new global::Meshtastic.Protobufs.Position(); + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) { + subBuilder.MergeFrom(SetFixedPosition); + } + input.ReadMessage(subBuilder); + SetFixedPosition = subBuilder; + break; + } + case 336: { + RemoveFixedPosition = input.ReadBool(); + break; + } case 512: { BeginEditSettings = input.ReadBool(); break; @@ -1994,6 +2164,27 @@ public void MergeFrom(pb::CodedInputStream input) { RemoveByNodenum = input.ReadUInt32(); break; } + case 312: { + SetFavoriteNode = input.ReadUInt32(); + break; + } + case 320: { + RemoveFavoriteNode = input.ReadUInt32(); + break; + } + case 330: { + global::Meshtastic.Protobufs.Position subBuilder = new global::Meshtastic.Protobufs.Position(); + if (payloadVariantCase_ == PayloadVariantOneofCase.SetFixedPosition) { + subBuilder.MergeFrom(SetFixedPosition); + } + input.ReadMessage(subBuilder); + SetFixedPosition = subBuilder; + break; + } + case 336: { + RemoveFixedPosition = input.ReadBool(); + break; + } case 512: { BeginEditSettings = input.ReadBool(); break; diff --git a/Meshtastic/Generated/Deviceonly.cs b/Meshtastic/Generated/Deviceonly.cs deleted file mode 100644 index fd32f46..0000000 --- a/Meshtastic/Generated/Deviceonly.cs +++ /dev/null @@ -1,2582 +0,0 @@ -// -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: meshtastic/deviceonly.proto -// -#pragma warning disable 1591, 0612, 3021, 8981 -#region Designer generated code - -using pb = global::Google.Protobuf; -using pbc = global::Google.Protobuf.Collections; -using pbr = global::Google.Protobuf.Reflection; -using scg = global::System.Collections.Generic; -namespace Meshtastic.Protobufs { - - /// Holder for reflection information generated from meshtastic/deviceonly.proto - public static partial class DeviceonlyReflection { - - #region Descriptor - /// File descriptor for meshtastic/deviceonly.proto - public static pbr::FileDescriptor Descriptor { - get { return descriptor; } - } - private static pbr::FileDescriptor descriptor; - - static DeviceonlyReflection() { - byte[] descriptorData = global::System.Convert.FromBase64String( - string.Concat( - "ChttZXNodGFzdGljL2RldmljZW9ubHkucHJvdG8SCm1lc2h0YXN0aWMaGG1l", - "c2h0YXN0aWMvY2hhbm5lbC5wcm90bxoabWVzaHRhc3RpYy9sb2NhbG9ubHku", - "cHJvdG8aFW1lc2h0YXN0aWMvbWVzaC5wcm90bxoabWVzaHRhc3RpYy90ZWxl", - "bWV0cnkucHJvdG8aHm1lc2h0YXN0aWMvbW9kdWxlX2NvbmZpZy5wcm90byKT", - "AwoLRGV2aWNlU3RhdGUSJwoHbXlfbm9kZRgCIAEoCzIWLm1lc2h0YXN0aWMu", - "TXlOb2RlSW5mbxIfCgVvd25lchgDIAEoCzIQLm1lc2h0YXN0aWMuVXNlchIt", - "Cg1yZWNlaXZlX3F1ZXVlGAUgAygLMhYubWVzaHRhc3RpYy5NZXNoUGFja2V0", - "Eg8KB3ZlcnNpb24YCCABKA0SLwoPcnhfdGV4dF9tZXNzYWdlGAcgASgLMhYu", - "bWVzaHRhc3RpYy5NZXNoUGFja2V0Eg8KB25vX3NhdmUYCSABKAgSFQoNZGlk", - "X2dwc19yZXNldBgLIAEoCBIrCgtyeF93YXlwb2ludBgMIAEoCzIWLm1lc2h0", - "YXN0aWMuTWVzaFBhY2tldBJEChlub2RlX3JlbW90ZV9oYXJkd2FyZV9waW5z", - "GA0gAygLMiEubWVzaHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdhcmVQaW4SLgoM", - "bm9kZV9kYl9saXRlGA4gAygLMhgubWVzaHRhc3RpYy5Ob2RlSW5mb0xpdGUi", - "8QEKDE5vZGVJbmZvTGl0ZRILCgNudW0YASABKA0SHgoEdXNlchgCIAEoCzIQ", - "Lm1lc2h0YXN0aWMuVXNlchIqCghwb3NpdGlvbhgDIAEoCzIYLm1lc2h0YXN0", - "aWMuUG9zaXRpb25MaXRlEgsKA3NuchgEIAEoAhISCgpsYXN0X2hlYXJkGAUg", - "ASgHEjEKDmRldmljZV9tZXRyaWNzGAYgASgLMhkubWVzaHRhc3RpYy5EZXZp", - "Y2VNZXRyaWNzEg8KB2NoYW5uZWwYByABKA0SEAoIdmlhX21xdHQYCCABKAgS", - "EQoJaG9wc19hd2F5GAkgASgNIpABCgxQb3NpdGlvbkxpdGUSEgoKbGF0aXR1", - "ZGVfaRgBIAEoDxITCgtsb25naXR1ZGVfaRgCIAEoDxIQCghhbHRpdHVkZRgD", - "IAEoBRIMCgR0aW1lGAQgASgHEjcKD2xvY2F0aW9uX3NvdXJjZRgFIAEoDjIe", - "Lm1lc2h0YXN0aWMuUG9zaXRpb24uTG9jU291cmNlIkUKC0NoYW5uZWxGaWxl", - "EiUKCGNoYW5uZWxzGAEgAygLMhMubWVzaHRhc3RpYy5DaGFubmVsEg8KB3Zl", - "cnNpb24YAiABKA0ilwIKCE9FTVN0b3JlEhYKDm9lbV9pY29uX3dpZHRoGAEg", - "ASgNEhcKD29lbV9pY29uX2hlaWdodBgCIAEoDRIVCg1vZW1faWNvbl9iaXRz", - "GAMgASgMEikKCG9lbV9mb250GAQgASgOMhcubWVzaHRhc3RpYy5TY3JlZW5G", - "b250cxIQCghvZW1fdGV4dBgFIAEoCRITCgtvZW1fYWVzX2tleRgGIAEoDBIx", - "ChBvZW1fbG9jYWxfY29uZmlnGAcgASgLMhcubWVzaHRhc3RpYy5Mb2NhbENv", - "bmZpZxI+ChdvZW1fbG9jYWxfbW9kdWxlX2NvbmZpZxgIIAEoCzIdLm1lc2h0", - "YXN0aWMuTG9jYWxNb2R1bGVDb25maWciVQoVTm9kZVJlbW90ZUhhcmR3YXJl", - "UGluEhAKCG5vZGVfbnVtGAEgASgNEioKA3BpbhgCIAEoCzIdLm1lc2h0YXN0", - "aWMuUmVtb3RlSGFyZHdhcmVQaW4qPgoLU2NyZWVuRm9udHMSDgoKRk9OVF9T", - "TUFMTBAAEg8KC0ZPTlRfTUVESVVNEAESDgoKRk9OVF9MQVJHRRACQl8KE2Nv", - "bS5nZWVrc3ZpbGxlLm1lc2hCCkRldmljZU9ubHlaImdpdGh1Yi5jb20vbWVz", - "aHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oC", - "AGIGcHJvdG8z")); - descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.ChannelReflection.Descriptor, global::Meshtastic.Protobufs.LocalonlyReflection.Descriptor, global::Meshtastic.Protobufs.MeshReflection.Descriptor, global::Meshtastic.Protobufs.TelemetryReflection.Descriptor, global::Meshtastic.Protobufs.ModuleConfigReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.ScreenFonts), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.DeviceState), global::Meshtastic.Protobufs.DeviceState.Parser, new[]{ "MyNode", "Owner", "ReceiveQueue", "Version", "RxTextMessage", "NoSave", "DidGpsReset", "RxWaypoint", "NodeRemoteHardwarePins", "NodeDbLite" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeInfoLite), global::Meshtastic.Protobufs.NodeInfoLite.Parser, new[]{ "Num", "User", "Position", "Snr", "LastHeard", "DeviceMetrics", "Channel", "ViaMqtt", "HopsAway" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.PositionLite), global::Meshtastic.Protobufs.PositionLite.Parser, new[]{ "LatitudeI", "LongitudeI", "Altitude", "Time", "LocationSource" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ChannelFile), global::Meshtastic.Protobufs.ChannelFile.Parser, new[]{ "Channels", "Version" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.OEMStore), global::Meshtastic.Protobufs.OEMStore.Parser, new[]{ "OemIconWidth", "OemIconHeight", "OemIconBits", "OemFont", "OemText", "OemAesKey", "OemLocalConfig", "OemLocalModuleConfig" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeRemoteHardwarePin), global::Meshtastic.Protobufs.NodeRemoteHardwarePin.Parser, new[]{ "NodeNum", "Pin" }, null, null, null, null) - })); - } - #endregion - - } - #region Enums - /// - /// - /// TODO: REPLACE - /// - public enum ScreenFonts { - /// - /// - /// TODO: REPLACE - /// - [pbr::OriginalName("FONT_SMALL")] FontSmall = 0, - /// - /// - /// TODO: REPLACE - /// - [pbr::OriginalName("FONT_MEDIUM")] FontMedium = 1, - /// - /// - /// TODO: REPLACE - /// - [pbr::OriginalName("FONT_LARGE")] FontLarge = 2, - } - - #endregion - - #region Messages - /// - /// - /// This message is never sent over the wire, but it is used for serializing DB - /// state to flash in the device code - /// FIXME, since we write this each time we enter deep sleep (and have infinite - /// flash) it would be better to use some sort of append only data structure for - /// the receive queue and use the preferences store for the other stuff - /// - public sealed partial class DeviceState : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DeviceState()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[0]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DeviceState() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DeviceState(DeviceState other) : this() { - myNode_ = other.myNode_ != null ? other.myNode_.Clone() : null; - owner_ = other.owner_ != null ? other.owner_.Clone() : null; - receiveQueue_ = other.receiveQueue_.Clone(); - version_ = other.version_; - rxTextMessage_ = other.rxTextMessage_ != null ? other.rxTextMessage_.Clone() : null; - noSave_ = other.noSave_; - didGpsReset_ = other.didGpsReset_; - rxWaypoint_ = other.rxWaypoint_ != null ? other.rxWaypoint_.Clone() : null; - nodeRemoteHardwarePins_ = other.nodeRemoteHardwarePins_.Clone(); - nodeDbLite_ = other.nodeDbLite_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DeviceState Clone() { - return new DeviceState(this); - } - - /// Field number for the "my_node" field. - public const int MyNodeFieldNumber = 2; - private global::Meshtastic.Protobufs.MyNodeInfo myNode_; - /// - /// - /// Read only settings/info about this node - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.MyNodeInfo MyNode { - get { return myNode_; } - set { - myNode_ = value; - } - } - - /// Field number for the "owner" field. - public const int OwnerFieldNumber = 3; - private global::Meshtastic.Protobufs.User owner_; - /// - /// - /// My owner info - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.User Owner { - get { return owner_; } - set { - owner_ = value; - } - } - - /// Field number for the "receive_queue" field. - public const int ReceiveQueueFieldNumber = 5; - private static readonly pb::FieldCodec _repeated_receiveQueue_codec - = pb::FieldCodec.ForMessage(42, global::Meshtastic.Protobufs.MeshPacket.Parser); - private readonly pbc::RepeatedField receiveQueue_ = new pbc::RepeatedField(); - /// - /// - /// Received packets saved for delivery to the phone - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField ReceiveQueue { - get { return receiveQueue_; } - } - - /// Field number for the "version" field. - public const int VersionFieldNumber = 8; - private uint version_; - /// - /// - /// 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. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Version { - get { return version_; } - set { - version_ = value; - } - } - - /// Field number for the "rx_text_message" field. - public const int RxTextMessageFieldNumber = 7; - private global::Meshtastic.Protobufs.MeshPacket rxTextMessage_; - /// - /// - /// We keep the last received text message (only) stored in the device flash, - /// so we can show it on the screen. - /// Might be null - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.MeshPacket RxTextMessage { - get { return rxTextMessage_; } - set { - rxTextMessage_ = value; - } - } - - /// Field number for the "no_save" field. - public const int NoSaveFieldNumber = 9; - private bool noSave_; - /// - /// - /// Used only during development. - /// Indicates developer is testing and changes should never be saved to flash. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool NoSave { - get { return noSave_; } - set { - noSave_ = value; - } - } - - /// Field number for the "did_gps_reset" field. - public const int DidGpsResetFieldNumber = 11; - private bool didGpsReset_; - /// - /// - /// Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool DidGpsReset { - get { return didGpsReset_; } - set { - didGpsReset_ = value; - } - } - - /// Field number for the "rx_waypoint" field. - public const int RxWaypointFieldNumber = 12; - private global::Meshtastic.Protobufs.MeshPacket rxWaypoint_; - /// - /// - /// We keep the last received waypoint stored in the device flash, - /// so we can show it on the screen. - /// Might be null - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.MeshPacket RxWaypoint { - get { return rxWaypoint_; } - set { - rxWaypoint_ = value; - } - } - - /// Field number for the "node_remote_hardware_pins" field. - public const int NodeRemoteHardwarePinsFieldNumber = 13; - private static readonly pb::FieldCodec _repeated_nodeRemoteHardwarePins_codec - = pb::FieldCodec.ForMessage(106, global::Meshtastic.Protobufs.NodeRemoteHardwarePin.Parser); - private readonly pbc::RepeatedField nodeRemoteHardwarePins_ = new pbc::RepeatedField(); - /// - /// - /// The mesh's nodes with their available gpio pins for RemoteHardware module - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NodeRemoteHardwarePins { - get { return nodeRemoteHardwarePins_; } - } - - /// Field number for the "node_db_lite" field. - public const int NodeDbLiteFieldNumber = 14; - private static readonly pb::FieldCodec _repeated_nodeDbLite_codec - = pb::FieldCodec.ForMessage(114, global::Meshtastic.Protobufs.NodeInfoLite.Parser); - private readonly pbc::RepeatedField nodeDbLite_ = new pbc::RepeatedField(); - /// - /// - /// New lite version of NodeDB to decrease memory footprint - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NodeDbLite { - get { return nodeDbLite_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as DeviceState); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(DeviceState other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (!object.Equals(MyNode, other.MyNode)) return false; - if (!object.Equals(Owner, other.Owner)) return false; - if(!receiveQueue_.Equals(other.receiveQueue_)) return false; - if (Version != other.Version) return false; - if (!object.Equals(RxTextMessage, other.RxTextMessage)) return false; - if (NoSave != other.NoSave) return false; - if (DidGpsReset != other.DidGpsReset) return false; - if (!object.Equals(RxWaypoint, other.RxWaypoint)) return false; - if(!nodeRemoteHardwarePins_.Equals(other.nodeRemoteHardwarePins_)) return false; - if(!nodeDbLite_.Equals(other.nodeDbLite_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (myNode_ != null) hash ^= MyNode.GetHashCode(); - if (owner_ != null) hash ^= Owner.GetHashCode(); - hash ^= receiveQueue_.GetHashCode(); - if (Version != 0) hash ^= Version.GetHashCode(); - if (rxTextMessage_ != null) hash ^= RxTextMessage.GetHashCode(); - if (NoSave != false) hash ^= NoSave.GetHashCode(); - if (DidGpsReset != false) hash ^= DidGpsReset.GetHashCode(); - if (rxWaypoint_ != null) hash ^= RxWaypoint.GetHashCode(); - hash ^= nodeRemoteHardwarePins_.GetHashCode(); - hash ^= nodeDbLite_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (myNode_ != null) { - output.WriteRawTag(18); - output.WriteMessage(MyNode); - } - if (owner_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Owner); - } - receiveQueue_.WriteTo(output, _repeated_receiveQueue_codec); - if (rxTextMessage_ != null) { - output.WriteRawTag(58); - output.WriteMessage(RxTextMessage); - } - if (Version != 0) { - output.WriteRawTag(64); - output.WriteUInt32(Version); - } - if (NoSave != false) { - output.WriteRawTag(72); - output.WriteBool(NoSave); - } - if (DidGpsReset != false) { - output.WriteRawTag(88); - output.WriteBool(DidGpsReset); - } - if (rxWaypoint_ != null) { - output.WriteRawTag(98); - output.WriteMessage(RxWaypoint); - } - nodeRemoteHardwarePins_.WriteTo(output, _repeated_nodeRemoteHardwarePins_codec); - nodeDbLite_.WriteTo(output, _repeated_nodeDbLite_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (myNode_ != null) { - output.WriteRawTag(18); - output.WriteMessage(MyNode); - } - if (owner_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Owner); - } - receiveQueue_.WriteTo(ref output, _repeated_receiveQueue_codec); - if (rxTextMessage_ != null) { - output.WriteRawTag(58); - output.WriteMessage(RxTextMessage); - } - if (Version != 0) { - output.WriteRawTag(64); - output.WriteUInt32(Version); - } - if (NoSave != false) { - output.WriteRawTag(72); - output.WriteBool(NoSave); - } - if (DidGpsReset != false) { - output.WriteRawTag(88); - output.WriteBool(DidGpsReset); - } - if (rxWaypoint_ != null) { - output.WriteRawTag(98); - output.WriteMessage(RxWaypoint); - } - nodeRemoteHardwarePins_.WriteTo(ref output, _repeated_nodeRemoteHardwarePins_codec); - nodeDbLite_.WriteTo(ref output, _repeated_nodeDbLite_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (myNode_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(MyNode); - } - if (owner_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Owner); - } - size += receiveQueue_.CalculateSize(_repeated_receiveQueue_codec); - if (Version != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Version); - } - if (rxTextMessage_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(RxTextMessage); - } - if (NoSave != false) { - size += 1 + 1; - } - if (DidGpsReset != false) { - size += 1 + 1; - } - if (rxWaypoint_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(RxWaypoint); - } - size += nodeRemoteHardwarePins_.CalculateSize(_repeated_nodeRemoteHardwarePins_codec); - size += nodeDbLite_.CalculateSize(_repeated_nodeDbLite_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(DeviceState other) { - if (other == null) { - return; - } - if (other.myNode_ != null) { - if (myNode_ == null) { - MyNode = new global::Meshtastic.Protobufs.MyNodeInfo(); - } - MyNode.MergeFrom(other.MyNode); - } - if (other.owner_ != null) { - if (owner_ == null) { - Owner = new global::Meshtastic.Protobufs.User(); - } - Owner.MergeFrom(other.Owner); - } - receiveQueue_.Add(other.receiveQueue_); - if (other.Version != 0) { - Version = other.Version; - } - if (other.rxTextMessage_ != null) { - if (rxTextMessage_ == null) { - RxTextMessage = new global::Meshtastic.Protobufs.MeshPacket(); - } - RxTextMessage.MergeFrom(other.RxTextMessage); - } - if (other.NoSave != false) { - NoSave = other.NoSave; - } - if (other.DidGpsReset != false) { - DidGpsReset = other.DidGpsReset; - } - if (other.rxWaypoint_ != null) { - if (rxWaypoint_ == null) { - RxWaypoint = new global::Meshtastic.Protobufs.MeshPacket(); - } - RxWaypoint.MergeFrom(other.RxWaypoint); - } - nodeRemoteHardwarePins_.Add(other.nodeRemoteHardwarePins_); - nodeDbLite_.Add(other.nodeDbLite_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 18: { - if (myNode_ == null) { - MyNode = new global::Meshtastic.Protobufs.MyNodeInfo(); - } - input.ReadMessage(MyNode); - break; - } - case 26: { - if (owner_ == null) { - Owner = new global::Meshtastic.Protobufs.User(); - } - input.ReadMessage(Owner); - break; - } - case 42: { - receiveQueue_.AddEntriesFrom(input, _repeated_receiveQueue_codec); - break; - } - case 58: { - if (rxTextMessage_ == null) { - RxTextMessage = new global::Meshtastic.Protobufs.MeshPacket(); - } - input.ReadMessage(RxTextMessage); - break; - } - case 64: { - Version = input.ReadUInt32(); - break; - } - case 72: { - NoSave = input.ReadBool(); - break; - } - case 88: { - DidGpsReset = input.ReadBool(); - break; - } - case 98: { - if (rxWaypoint_ == null) { - RxWaypoint = new global::Meshtastic.Protobufs.MeshPacket(); - } - input.ReadMessage(RxWaypoint); - break; - } - case 106: { - nodeRemoteHardwarePins_.AddEntriesFrom(input, _repeated_nodeRemoteHardwarePins_codec); - break; - } - case 114: { - nodeDbLite_.AddEntriesFrom(input, _repeated_nodeDbLite_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 18: { - if (myNode_ == null) { - MyNode = new global::Meshtastic.Protobufs.MyNodeInfo(); - } - input.ReadMessage(MyNode); - break; - } - case 26: { - if (owner_ == null) { - Owner = new global::Meshtastic.Protobufs.User(); - } - input.ReadMessage(Owner); - break; - } - case 42: { - receiveQueue_.AddEntriesFrom(ref input, _repeated_receiveQueue_codec); - break; - } - case 58: { - if (rxTextMessage_ == null) { - RxTextMessage = new global::Meshtastic.Protobufs.MeshPacket(); - } - input.ReadMessage(RxTextMessage); - break; - } - case 64: { - Version = input.ReadUInt32(); - break; - } - case 72: { - NoSave = input.ReadBool(); - break; - } - case 88: { - DidGpsReset = input.ReadBool(); - break; - } - case 98: { - if (rxWaypoint_ == null) { - RxWaypoint = new global::Meshtastic.Protobufs.MeshPacket(); - } - input.ReadMessage(RxWaypoint); - break; - } - case 106: { - nodeRemoteHardwarePins_.AddEntriesFrom(ref input, _repeated_nodeRemoteHardwarePins_codec); - break; - } - case 114: { - nodeDbLite_.AddEntriesFrom(ref input, _repeated_nodeDbLite_codec); - break; - } - } - } - } - #endif - - } - - public sealed partial class NodeInfoLite : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NodeInfoLite()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[1]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeInfoLite() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeInfoLite(NodeInfoLite other) : this() { - num_ = other.num_; - user_ = other.user_ != null ? other.user_.Clone() : null; - position_ = other.position_ != null ? other.position_.Clone() : null; - snr_ = other.snr_; - lastHeard_ = other.lastHeard_; - deviceMetrics_ = other.deviceMetrics_ != null ? other.deviceMetrics_.Clone() : null; - channel_ = other.channel_; - viaMqtt_ = other.viaMqtt_; - hopsAway_ = other.hopsAway_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeInfoLite Clone() { - return new NodeInfoLite(this); - } - - /// Field number for the "num" field. - public const int NumFieldNumber = 1; - private uint num_; - /// - /// - /// The node number - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Num { - get { return num_; } - set { - num_ = value; - } - } - - /// Field number for the "user" field. - public const int UserFieldNumber = 2; - private global::Meshtastic.Protobufs.User user_; - /// - /// - /// The user info for this node - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.User User { - get { return user_; } - set { - user_ = value; - } - } - - /// Field number for the "position" field. - public const int PositionFieldNumber = 3; - private global::Meshtastic.Protobufs.PositionLite position_; - /// - /// - /// This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true. - /// Position.time now indicates the last time we received a POSITION from that node. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.PositionLite Position { - get { return position_; } - set { - position_ = value; - } - } - - /// Field number for the "snr" field. - public const int SnrFieldNumber = 4; - private float snr_; - /// - /// - /// Returns the Signal-to-noise ratio (SNR) of the last received message, - /// as measured by the receiver. Return SNR of the last received message in dB - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Snr { - get { return snr_; } - set { - snr_ = value; - } - } - - /// Field number for the "last_heard" field. - public const int LastHeardFieldNumber = 5; - private uint lastHeard_; - /// - /// - /// Set to indicate the last time we received a packet from this node - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint LastHeard { - get { return lastHeard_; } - set { - lastHeard_ = value; - } - } - - /// Field number for the "device_metrics" field. - public const int DeviceMetricsFieldNumber = 6; - private global::Meshtastic.Protobufs.DeviceMetrics deviceMetrics_; - /// - /// - /// The latest device metrics for the node. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.DeviceMetrics DeviceMetrics { - get { return deviceMetrics_; } - set { - deviceMetrics_ = value; - } - } - - /// Field number for the "channel" field. - public const int ChannelFieldNumber = 7; - private uint channel_; - /// - /// - /// local channel index we heard that node on. Only populated if its not the default channel. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Channel { - get { return channel_; } - set { - channel_ = value; - } - } - - /// Field number for the "via_mqtt" field. - public const int ViaMqttFieldNumber = 8; - private bool viaMqtt_; - /// - /// - /// True if we witnessed the node over MQTT instead of LoRA transport - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool ViaMqtt { - get { return viaMqtt_; } - set { - viaMqtt_ = value; - } - } - - /// Field number for the "hops_away" field. - public const int HopsAwayFieldNumber = 9; - private uint hopsAway_; - /// - /// - /// Number of hops away from us this node is (0 if adjacent) - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint HopsAway { - get { return hopsAway_; } - set { - hopsAway_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as NodeInfoLite); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(NodeInfoLite other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Num != other.Num) return false; - if (!object.Equals(User, other.User)) return false; - if (!object.Equals(Position, other.Position)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Snr, other.Snr)) return false; - if (LastHeard != other.LastHeard) return false; - if (!object.Equals(DeviceMetrics, other.DeviceMetrics)) return false; - if (Channel != other.Channel) return false; - if (ViaMqtt != other.ViaMqtt) return false; - if (HopsAway != other.HopsAway) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (Num != 0) hash ^= Num.GetHashCode(); - if (user_ != null) hash ^= User.GetHashCode(); - if (position_ != null) hash ^= Position.GetHashCode(); - if (Snr != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Snr); - if (LastHeard != 0) hash ^= LastHeard.GetHashCode(); - if (deviceMetrics_ != null) hash ^= DeviceMetrics.GetHashCode(); - if (Channel != 0) hash ^= Channel.GetHashCode(); - if (ViaMqtt != false) hash ^= ViaMqtt.GetHashCode(); - if (HopsAway != 0) hash ^= HopsAway.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (Num != 0) { - output.WriteRawTag(8); - output.WriteUInt32(Num); - } - if (user_ != null) { - output.WriteRawTag(18); - output.WriteMessage(User); - } - if (position_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Position); - } - if (Snr != 0F) { - output.WriteRawTag(37); - output.WriteFloat(Snr); - } - if (LastHeard != 0) { - output.WriteRawTag(45); - output.WriteFixed32(LastHeard); - } - if (deviceMetrics_ != null) { - output.WriteRawTag(50); - output.WriteMessage(DeviceMetrics); - } - if (Channel != 0) { - output.WriteRawTag(56); - output.WriteUInt32(Channel); - } - if (ViaMqtt != false) { - output.WriteRawTag(64); - output.WriteBool(ViaMqtt); - } - if (HopsAway != 0) { - output.WriteRawTag(72); - output.WriteUInt32(HopsAway); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Num != 0) { - output.WriteRawTag(8); - output.WriteUInt32(Num); - } - if (user_ != null) { - output.WriteRawTag(18); - output.WriteMessage(User); - } - if (position_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Position); - } - if (Snr != 0F) { - output.WriteRawTag(37); - output.WriteFloat(Snr); - } - if (LastHeard != 0) { - output.WriteRawTag(45); - output.WriteFixed32(LastHeard); - } - if (deviceMetrics_ != null) { - output.WriteRawTag(50); - output.WriteMessage(DeviceMetrics); - } - if (Channel != 0) { - output.WriteRawTag(56); - output.WriteUInt32(Channel); - } - if (ViaMqtt != false) { - output.WriteRawTag(64); - output.WriteBool(ViaMqtt); - } - if (HopsAway != 0) { - output.WriteRawTag(72); - output.WriteUInt32(HopsAway); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (Num != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Num); - } - if (user_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(User); - } - if (position_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Position); - } - if (Snr != 0F) { - size += 1 + 4; - } - if (LastHeard != 0) { - size += 1 + 4; - } - if (deviceMetrics_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(DeviceMetrics); - } - if (Channel != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Channel); - } - if (ViaMqtt != false) { - size += 1 + 1; - } - if (HopsAway != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HopsAway); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(NodeInfoLite other) { - if (other == null) { - return; - } - if (other.Num != 0) { - Num = other.Num; - } - if (other.user_ != null) { - if (user_ == null) { - User = new global::Meshtastic.Protobufs.User(); - } - User.MergeFrom(other.User); - } - if (other.position_ != null) { - if (position_ == null) { - Position = new global::Meshtastic.Protobufs.PositionLite(); - } - Position.MergeFrom(other.Position); - } - if (other.Snr != 0F) { - Snr = other.Snr; - } - if (other.LastHeard != 0) { - LastHeard = other.LastHeard; - } - if (other.deviceMetrics_ != null) { - if (deviceMetrics_ == null) { - DeviceMetrics = new global::Meshtastic.Protobufs.DeviceMetrics(); - } - DeviceMetrics.MergeFrom(other.DeviceMetrics); - } - if (other.Channel != 0) { - Channel = other.Channel; - } - if (other.ViaMqtt != false) { - ViaMqtt = other.ViaMqtt; - } - if (other.HopsAway != 0) { - HopsAway = other.HopsAway; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Num = input.ReadUInt32(); - break; - } - case 18: { - if (user_ == null) { - User = new global::Meshtastic.Protobufs.User(); - } - input.ReadMessage(User); - break; - } - case 26: { - if (position_ == null) { - Position = new global::Meshtastic.Protobufs.PositionLite(); - } - input.ReadMessage(Position); - break; - } - case 37: { - Snr = input.ReadFloat(); - break; - } - case 45: { - LastHeard = input.ReadFixed32(); - break; - } - case 50: { - if (deviceMetrics_ == null) { - DeviceMetrics = new global::Meshtastic.Protobufs.DeviceMetrics(); - } - input.ReadMessage(DeviceMetrics); - break; - } - case 56: { - Channel = input.ReadUInt32(); - break; - } - case 64: { - ViaMqtt = input.ReadBool(); - break; - } - case 72: { - HopsAway = input.ReadUInt32(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Num = input.ReadUInt32(); - break; - } - case 18: { - if (user_ == null) { - User = new global::Meshtastic.Protobufs.User(); - } - input.ReadMessage(User); - break; - } - case 26: { - if (position_ == null) { - Position = new global::Meshtastic.Protobufs.PositionLite(); - } - input.ReadMessage(Position); - break; - } - case 37: { - Snr = input.ReadFloat(); - break; - } - case 45: { - LastHeard = input.ReadFixed32(); - break; - } - case 50: { - if (deviceMetrics_ == null) { - DeviceMetrics = new global::Meshtastic.Protobufs.DeviceMetrics(); - } - input.ReadMessage(DeviceMetrics); - break; - } - case 56: { - Channel = input.ReadUInt32(); - break; - } - case 64: { - ViaMqtt = input.ReadBool(); - break; - } - case 72: { - HopsAway = input.ReadUInt32(); - break; - } - } - } - } - #endif - - } - - /// - /// - /// Position with static location information only for NodeDBLite - /// - public sealed partial class PositionLite : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PositionLite()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[2]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PositionLite() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PositionLite(PositionLite other) : this() { - latitudeI_ = other.latitudeI_; - longitudeI_ = other.longitudeI_; - altitude_ = other.altitude_; - time_ = other.time_; - locationSource_ = other.locationSource_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PositionLite Clone() { - return new PositionLite(this); - } - - /// Field number for the "latitude_i" field. - public const int LatitudeIFieldNumber = 1; - private int latitudeI_; - /// - /// - /// The new preferred location encoding, multiply by 1e-7 to get degrees - /// in floating point - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int LatitudeI { - get { return latitudeI_; } - set { - latitudeI_ = value; - } - } - - /// Field number for the "longitude_i" field. - public const int LongitudeIFieldNumber = 2; - private int longitudeI_; - /// - /// - /// TODO: REPLACE - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int LongitudeI { - get { return longitudeI_; } - set { - longitudeI_ = value; - } - } - - /// Field number for the "altitude" field. - public const int AltitudeFieldNumber = 3; - private int altitude_; - /// - /// - /// In meters above MSL (but see issue #359) - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Altitude { - get { return altitude_; } - set { - altitude_ = value; - } - } - - /// Field number for the "time" field. - public const int TimeFieldNumber = 4; - private uint time_; - /// - /// - /// This is usually not sent over the mesh (to save space), but it is sent - /// from the phone so that the local device can set its RTC If it is sent over - /// the mesh (because there are devices on the mesh without GPS), it will only - /// be sent by devices which has a hardware GPS clock. - /// seconds since 1970 - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Time { - get { return time_; } - set { - time_ = value; - } - } - - /// Field number for the "location_source" field. - public const int LocationSourceFieldNumber = 5; - private global::Meshtastic.Protobufs.Position.Types.LocSource locationSource_ = global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset; - /// - /// - /// TODO: REPLACE - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.Position.Types.LocSource LocationSource { - get { return locationSource_; } - set { - locationSource_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as PositionLite); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PositionLite other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (LatitudeI != other.LatitudeI) return false; - if (LongitudeI != other.LongitudeI) return false; - if (Altitude != other.Altitude) return false; - if (Time != other.Time) return false; - if (LocationSource != other.LocationSource) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (LatitudeI != 0) hash ^= LatitudeI.GetHashCode(); - if (LongitudeI != 0) hash ^= LongitudeI.GetHashCode(); - if (Altitude != 0) hash ^= Altitude.GetHashCode(); - if (Time != 0) hash ^= Time.GetHashCode(); - if (LocationSource != global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset) hash ^= LocationSource.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (LatitudeI != 0) { - output.WriteRawTag(13); - output.WriteSFixed32(LatitudeI); - } - if (LongitudeI != 0) { - output.WriteRawTag(21); - output.WriteSFixed32(LongitudeI); - } - if (Altitude != 0) { - output.WriteRawTag(24); - output.WriteInt32(Altitude); - } - if (Time != 0) { - output.WriteRawTag(37); - output.WriteFixed32(Time); - } - if (LocationSource != global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset) { - output.WriteRawTag(40); - output.WriteEnum((int) LocationSource); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (LatitudeI != 0) { - output.WriteRawTag(13); - output.WriteSFixed32(LatitudeI); - } - if (LongitudeI != 0) { - output.WriteRawTag(21); - output.WriteSFixed32(LongitudeI); - } - if (Altitude != 0) { - output.WriteRawTag(24); - output.WriteInt32(Altitude); - } - if (Time != 0) { - output.WriteRawTag(37); - output.WriteFixed32(Time); - } - if (LocationSource != global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset) { - output.WriteRawTag(40); - output.WriteEnum((int) LocationSource); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (LatitudeI != 0) { - size += 1 + 4; - } - if (LongitudeI != 0) { - size += 1 + 4; - } - if (Altitude != 0) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Altitude); - } - if (Time != 0) { - size += 1 + 4; - } - if (LocationSource != global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocationSource); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PositionLite other) { - if (other == null) { - return; - } - if (other.LatitudeI != 0) { - LatitudeI = other.LatitudeI; - } - if (other.LongitudeI != 0) { - LongitudeI = other.LongitudeI; - } - if (other.Altitude != 0) { - Altitude = other.Altitude; - } - if (other.Time != 0) { - Time = other.Time; - } - if (other.LocationSource != global::Meshtastic.Protobufs.Position.Types.LocSource.LocUnset) { - LocationSource = other.LocationSource; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 13: { - LatitudeI = input.ReadSFixed32(); - break; - } - case 21: { - LongitudeI = input.ReadSFixed32(); - break; - } - case 24: { - Altitude = input.ReadInt32(); - break; - } - case 37: { - Time = input.ReadFixed32(); - break; - } - case 40: { - LocationSource = (global::Meshtastic.Protobufs.Position.Types.LocSource) input.ReadEnum(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 13: { - LatitudeI = input.ReadSFixed32(); - break; - } - case 21: { - LongitudeI = input.ReadSFixed32(); - break; - } - case 24: { - Altitude = input.ReadInt32(); - break; - } - case 37: { - Time = input.ReadFixed32(); - break; - } - case 40: { - LocationSource = (global::Meshtastic.Protobufs.Position.Types.LocSource) input.ReadEnum(); - break; - } - } - } - } - #endif - - } - - /// - /// - /// The on-disk saved channels - /// - public sealed partial class ChannelFile : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ChannelFile()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[3]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ChannelFile() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ChannelFile(ChannelFile other) : this() { - channels_ = other.channels_.Clone(); - version_ = other.version_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ChannelFile Clone() { - return new ChannelFile(this); - } - - /// Field number for the "channels" field. - public const int ChannelsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_channels_codec - = pb::FieldCodec.ForMessage(10, global::Meshtastic.Protobufs.Channel.Parser); - private readonly pbc::RepeatedField channels_ = new pbc::RepeatedField(); - /// - /// - /// The channels our node knows about - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Channels { - get { return channels_; } - } - - /// Field number for the "version" field. - public const int VersionFieldNumber = 2; - private uint version_; - /// - /// - /// 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. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Version { - get { return version_; } - set { - version_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as ChannelFile); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ChannelFile other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if(!channels_.Equals(other.channels_)) return false; - if (Version != other.Version) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - hash ^= channels_.GetHashCode(); - if (Version != 0) hash ^= Version.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - channels_.WriteTo(output, _repeated_channels_codec); - if (Version != 0) { - output.WriteRawTag(16); - output.WriteUInt32(Version); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - channels_.WriteTo(ref output, _repeated_channels_codec); - if (Version != 0) { - output.WriteRawTag(16); - output.WriteUInt32(Version); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - size += channels_.CalculateSize(_repeated_channels_codec); - if (Version != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Version); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ChannelFile other) { - if (other == null) { - return; - } - channels_.Add(other.channels_); - if (other.Version != 0) { - Version = other.Version; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - channels_.AddEntriesFrom(input, _repeated_channels_codec); - break; - } - case 16: { - Version = input.ReadUInt32(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - channels_.AddEntriesFrom(ref input, _repeated_channels_codec); - break; - } - case 16: { - Version = input.ReadUInt32(); - break; - } - } - } - } - #endif - - } - - /// - /// - /// This can be used for customizing the firmware distribution. If populated, - /// show a secondary bootup screen with custom logo and text for 2.5 seconds. - /// - public sealed partial class OEMStore : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OEMStore()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[4]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OEMStore() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OEMStore(OEMStore other) : this() { - oemIconWidth_ = other.oemIconWidth_; - oemIconHeight_ = other.oemIconHeight_; - oemIconBits_ = other.oemIconBits_; - oemFont_ = other.oemFont_; - oemText_ = other.oemText_; - oemAesKey_ = other.oemAesKey_; - oemLocalConfig_ = other.oemLocalConfig_ != null ? other.oemLocalConfig_.Clone() : null; - oemLocalModuleConfig_ = other.oemLocalModuleConfig_ != null ? other.oemLocalModuleConfig_.Clone() : null; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OEMStore Clone() { - return new OEMStore(this); - } - - /// Field number for the "oem_icon_width" field. - public const int OemIconWidthFieldNumber = 1; - private uint oemIconWidth_; - /// - /// - /// The Logo width in Px - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint OemIconWidth { - get { return oemIconWidth_; } - set { - oemIconWidth_ = value; - } - } - - /// Field number for the "oem_icon_height" field. - public const int OemIconHeightFieldNumber = 2; - private uint oemIconHeight_; - /// - /// - /// The Logo height in Px - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint OemIconHeight { - get { return oemIconHeight_; } - set { - oemIconHeight_ = value; - } - } - - /// Field number for the "oem_icon_bits" field. - public const int OemIconBitsFieldNumber = 3; - private pb::ByteString oemIconBits_ = pb::ByteString.Empty; - /// - /// - /// The Logo in XBM bytechar format - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString OemIconBits { - get { return oemIconBits_; } - set { - oemIconBits_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "oem_font" field. - public const int OemFontFieldNumber = 4; - private global::Meshtastic.Protobufs.ScreenFonts oemFont_ = global::Meshtastic.Protobufs.ScreenFonts.FontSmall; - /// - /// - /// Use this font for the OEM text. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.ScreenFonts OemFont { - get { return oemFont_; } - set { - oemFont_ = value; - } - } - - /// Field number for the "oem_text" field. - public const int OemTextFieldNumber = 5; - private string oemText_ = ""; - /// - /// - /// Use this font for the OEM text. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string OemText { - get { return oemText_; } - set { - oemText_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "oem_aes_key" field. - public const int OemAesKeyFieldNumber = 6; - private pb::ByteString oemAesKey_ = pb::ByteString.Empty; - /// - /// - /// The default device encryption key, 16 or 32 byte - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString OemAesKey { - get { return oemAesKey_; } - set { - oemAesKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "oem_local_config" field. - public const int OemLocalConfigFieldNumber = 7; - private global::Meshtastic.Protobufs.LocalConfig oemLocalConfig_; - /// - /// - /// A Preset LocalConfig to apply during factory reset - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.LocalConfig OemLocalConfig { - get { return oemLocalConfig_; } - set { - oemLocalConfig_ = value; - } - } - - /// Field number for the "oem_local_module_config" field. - public const int OemLocalModuleConfigFieldNumber = 8; - private global::Meshtastic.Protobufs.LocalModuleConfig oemLocalModuleConfig_; - /// - /// - /// A Preset LocalModuleConfig to apply during factory reset - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.LocalModuleConfig OemLocalModuleConfig { - get { return oemLocalModuleConfig_; } - set { - oemLocalModuleConfig_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as OEMStore); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(OEMStore other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (OemIconWidth != other.OemIconWidth) return false; - if (OemIconHeight != other.OemIconHeight) return false; - if (OemIconBits != other.OemIconBits) return false; - if (OemFont != other.OemFont) return false; - if (OemText != other.OemText) return false; - if (OemAesKey != other.OemAesKey) return false; - if (!object.Equals(OemLocalConfig, other.OemLocalConfig)) return false; - if (!object.Equals(OemLocalModuleConfig, other.OemLocalModuleConfig)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (OemIconWidth != 0) hash ^= OemIconWidth.GetHashCode(); - if (OemIconHeight != 0) hash ^= OemIconHeight.GetHashCode(); - if (OemIconBits.Length != 0) hash ^= OemIconBits.GetHashCode(); - if (OemFont != global::Meshtastic.Protobufs.ScreenFonts.FontSmall) hash ^= OemFont.GetHashCode(); - if (OemText.Length != 0) hash ^= OemText.GetHashCode(); - if (OemAesKey.Length != 0) hash ^= OemAesKey.GetHashCode(); - if (oemLocalConfig_ != null) hash ^= OemLocalConfig.GetHashCode(); - if (oemLocalModuleConfig_ != null) hash ^= OemLocalModuleConfig.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (OemIconWidth != 0) { - output.WriteRawTag(8); - output.WriteUInt32(OemIconWidth); - } - if (OemIconHeight != 0) { - output.WriteRawTag(16); - output.WriteUInt32(OemIconHeight); - } - if (OemIconBits.Length != 0) { - output.WriteRawTag(26); - output.WriteBytes(OemIconBits); - } - if (OemFont != global::Meshtastic.Protobufs.ScreenFonts.FontSmall) { - output.WriteRawTag(32); - output.WriteEnum((int) OemFont); - } - if (OemText.Length != 0) { - output.WriteRawTag(42); - output.WriteString(OemText); - } - if (OemAesKey.Length != 0) { - output.WriteRawTag(50); - output.WriteBytes(OemAesKey); - } - if (oemLocalConfig_ != null) { - output.WriteRawTag(58); - output.WriteMessage(OemLocalConfig); - } - if (oemLocalModuleConfig_ != null) { - output.WriteRawTag(66); - output.WriteMessage(OemLocalModuleConfig); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (OemIconWidth != 0) { - output.WriteRawTag(8); - output.WriteUInt32(OemIconWidth); - } - if (OemIconHeight != 0) { - output.WriteRawTag(16); - output.WriteUInt32(OemIconHeight); - } - if (OemIconBits.Length != 0) { - output.WriteRawTag(26); - output.WriteBytes(OemIconBits); - } - if (OemFont != global::Meshtastic.Protobufs.ScreenFonts.FontSmall) { - output.WriteRawTag(32); - output.WriteEnum((int) OemFont); - } - if (OemText.Length != 0) { - output.WriteRawTag(42); - output.WriteString(OemText); - } - if (OemAesKey.Length != 0) { - output.WriteRawTag(50); - output.WriteBytes(OemAesKey); - } - if (oemLocalConfig_ != null) { - output.WriteRawTag(58); - output.WriteMessage(OemLocalConfig); - } - if (oemLocalModuleConfig_ != null) { - output.WriteRawTag(66); - output.WriteMessage(OemLocalModuleConfig); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (OemIconWidth != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(OemIconWidth); - } - if (OemIconHeight != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(OemIconHeight); - } - if (OemIconBits.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(OemIconBits); - } - if (OemFont != global::Meshtastic.Protobufs.ScreenFonts.FontSmall) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OemFont); - } - if (OemText.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(OemText); - } - if (OemAesKey.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(OemAesKey); - } - if (oemLocalConfig_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(OemLocalConfig); - } - if (oemLocalModuleConfig_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(OemLocalModuleConfig); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(OEMStore other) { - if (other == null) { - return; - } - if (other.OemIconWidth != 0) { - OemIconWidth = other.OemIconWidth; - } - if (other.OemIconHeight != 0) { - OemIconHeight = other.OemIconHeight; - } - if (other.OemIconBits.Length != 0) { - OemIconBits = other.OemIconBits; - } - if (other.OemFont != global::Meshtastic.Protobufs.ScreenFonts.FontSmall) { - OemFont = other.OemFont; - } - if (other.OemText.Length != 0) { - OemText = other.OemText; - } - if (other.OemAesKey.Length != 0) { - OemAesKey = other.OemAesKey; - } - if (other.oemLocalConfig_ != null) { - if (oemLocalConfig_ == null) { - OemLocalConfig = new global::Meshtastic.Protobufs.LocalConfig(); - } - OemLocalConfig.MergeFrom(other.OemLocalConfig); - } - if (other.oemLocalModuleConfig_ != null) { - if (oemLocalModuleConfig_ == null) { - OemLocalModuleConfig = new global::Meshtastic.Protobufs.LocalModuleConfig(); - } - OemLocalModuleConfig.MergeFrom(other.OemLocalModuleConfig); - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - OemIconWidth = input.ReadUInt32(); - break; - } - case 16: { - OemIconHeight = input.ReadUInt32(); - break; - } - case 26: { - OemIconBits = input.ReadBytes(); - break; - } - case 32: { - OemFont = (global::Meshtastic.Protobufs.ScreenFonts) input.ReadEnum(); - break; - } - case 42: { - OemText = input.ReadString(); - break; - } - case 50: { - OemAesKey = input.ReadBytes(); - break; - } - case 58: { - if (oemLocalConfig_ == null) { - OemLocalConfig = new global::Meshtastic.Protobufs.LocalConfig(); - } - input.ReadMessage(OemLocalConfig); - break; - } - case 66: { - if (oemLocalModuleConfig_ == null) { - OemLocalModuleConfig = new global::Meshtastic.Protobufs.LocalModuleConfig(); - } - input.ReadMessage(OemLocalModuleConfig); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - OemIconWidth = input.ReadUInt32(); - break; - } - case 16: { - OemIconHeight = input.ReadUInt32(); - break; - } - case 26: { - OemIconBits = input.ReadBytes(); - break; - } - case 32: { - OemFont = (global::Meshtastic.Protobufs.ScreenFonts) input.ReadEnum(); - break; - } - case 42: { - OemText = input.ReadString(); - break; - } - case 50: { - OemAesKey = input.ReadBytes(); - break; - } - case 58: { - if (oemLocalConfig_ == null) { - OemLocalConfig = new global::Meshtastic.Protobufs.LocalConfig(); - } - input.ReadMessage(OemLocalConfig); - break; - } - case 66: { - if (oemLocalModuleConfig_ == null) { - OemLocalModuleConfig = new global::Meshtastic.Protobufs.LocalModuleConfig(); - } - input.ReadMessage(OemLocalModuleConfig); - break; - } - } - } - } - #endif - - } - - /// - /// - /// RemoteHardwarePins associated with a node - /// - public sealed partial class NodeRemoteHardwarePin : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NodeRemoteHardwarePin()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.DeviceonlyReflection.Descriptor.MessageTypes[5]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeRemoteHardwarePin() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeRemoteHardwarePin(NodeRemoteHardwarePin other) : this() { - nodeNum_ = other.nodeNum_; - pin_ = other.pin_ != null ? other.pin_.Clone() : null; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public NodeRemoteHardwarePin Clone() { - return new NodeRemoteHardwarePin(this); - } - - /// Field number for the "node_num" field. - public const int NodeNumFieldNumber = 1; - private uint nodeNum_; - /// - /// - /// The node_num exposing the available gpio pin - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint NodeNum { - get { return nodeNum_; } - set { - nodeNum_ = value; - } - } - - /// Field number for the "pin" field. - public const int PinFieldNumber = 2; - private global::Meshtastic.Protobufs.RemoteHardwarePin pin_; - /// - /// - /// The the available gpio pin for usage with RemoteHardware module - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Meshtastic.Protobufs.RemoteHardwarePin Pin { - get { return pin_; } - set { - pin_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as NodeRemoteHardwarePin); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(NodeRemoteHardwarePin other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (NodeNum != other.NodeNum) return false; - if (!object.Equals(Pin, other.Pin)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (NodeNum != 0) hash ^= NodeNum.GetHashCode(); - if (pin_ != null) hash ^= Pin.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (NodeNum != 0) { - output.WriteRawTag(8); - output.WriteUInt32(NodeNum); - } - if (pin_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Pin); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (NodeNum != 0) { - output.WriteRawTag(8); - output.WriteUInt32(NodeNum); - } - if (pin_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Pin); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (NodeNum != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(NodeNum); - } - if (pin_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Pin); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(NodeRemoteHardwarePin other) { - if (other == null) { - return; - } - if (other.NodeNum != 0) { - NodeNum = other.NodeNum; - } - if (other.pin_ != null) { - if (pin_ == null) { - Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); - } - Pin.MergeFrom(other.Pin); - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - NodeNum = input.ReadUInt32(); - break; - } - case 18: { - if (pin_ == null) { - Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); - } - input.ReadMessage(Pin); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - NodeNum = input.ReadUInt32(); - break; - } - case 18: { - if (pin_ == null) { - Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); - } - input.ReadMessage(Pin); - break; - } - } - } - } - #endif - - } - - #endregion - -} - -#endregion Designer generated code diff --git a/Meshtastic/Generated/Mesh.cs b/Meshtastic/Generated/Mesh.cs index b22c930..2247634 100644 --- a/Meshtastic/Generated/Mesh.cs +++ b/Meshtastic/Generated/Mesh.cs @@ -80,83 +80,86 @@ static MeshReflection() { "T1VORBAKEgsKB0RFRkFVTFQQQBIMCghSRUxJQUJMRRBGEgcKA0FDSxB4EgcK", "A01BWBB/IkIKB0RlbGF5ZWQSDAoITk9fREVMQVkQABIVChFERUxBWUVEX0JS", "T0FEQ0FTVBABEhIKDkRFTEFZRURfRElSRUNUEAJCEQoPcGF5bG9hZF92YXJp", - "YW50IukBCghOb2RlSW5mbxILCgNudW0YASABKA0SHgoEdXNlchgCIAEoCzIQ", + "YW50Iv4BCghOb2RlSW5mbxILCgNudW0YASABKA0SHgoEdXNlchgCIAEoCzIQ", "Lm1lc2h0YXN0aWMuVXNlchImCghwb3NpdGlvbhgDIAEoCzIULm1lc2h0YXN0", "aWMuUG9zaXRpb24SCwoDc25yGAQgASgCEhIKCmxhc3RfaGVhcmQYBSABKAcS", "MQoOZGV2aWNlX21ldHJpY3MYBiABKAsyGS5tZXNodGFzdGljLkRldmljZU1l", "dHJpY3MSDwoHY2hhbm5lbBgHIAEoDRIQCgh2aWFfbXF0dBgIIAEoCBIRCglo", - "b3BzX2F3YXkYCSABKA0iUAoKTXlOb2RlSW5mbxITCgtteV9ub2RlX251bRgB", - "IAEoDRIUCgxyZWJvb3RfY291bnQYCCABKA0SFwoPbWluX2FwcF92ZXJzaW9u", - "GAsgASgNIsABCglMb2dSZWNvcmQSDwoHbWVzc2FnZRgBIAEoCRIMCgR0aW1l", - "GAIgASgHEg4KBnNvdXJjZRgDIAEoCRIqCgVsZXZlbBgEIAEoDjIbLm1lc2h0", - "YXN0aWMuTG9nUmVjb3JkLkxldmVsIlgKBUxldmVsEgkKBVVOU0VUEAASDAoI", - "Q1JJVElDQUwQMhIJCgVFUlJPUhAoEgsKB1dBUk5JTkcQHhIICgRJTkZPEBQS", - "CQoFREVCVUcQChIJCgVUUkFDRRAFIlAKC1F1ZXVlU3RhdHVzEgsKA3JlcxgB", - "IAEoBRIMCgRmcmVlGAIgASgNEg4KBm1heGxlbhgDIAEoDRIWCg5tZXNoX3Bh", - "Y2tldF9pZBgEIAEoDSLbBAoJRnJvbVJhZGlvEgoKAmlkGAEgASgNEigKBnBh", - "Y2tldBgCIAEoCzIWLm1lc2h0YXN0aWMuTWVzaFBhY2tldEgAEikKB215X2lu", - "Zm8YAyABKAsyFi5tZXNodGFzdGljLk15Tm9kZUluZm9IABIpCglub2RlX2lu", - "Zm8YBCABKAsyFC5tZXNodGFzdGljLk5vZGVJbmZvSAASJAoGY29uZmlnGAUg", - "ASgLMhIubWVzaHRhc3RpYy5Db25maWdIABIrCgpsb2dfcmVjb3JkGAYgASgL", - "MhUubWVzaHRhc3RpYy5Mb2dSZWNvcmRIABIcChJjb25maWdfY29tcGxldGVf", - "aWQYByABKA1IABISCghyZWJvb3RlZBgIIAEoCEgAEjAKDG1vZHVsZUNvbmZp", - "ZxgJIAEoCzIYLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnSAASJgoHY2hhbm5l", - "bBgKIAEoCzITLm1lc2h0YXN0aWMuQ2hhbm5lbEgAEi4KC3F1ZXVlU3RhdHVz", - "GAsgASgLMhcubWVzaHRhc3RpYy5RdWV1ZVN0YXR1c0gAEioKDHhtb2RlbVBh", - "Y2tldBgMIAEoCzISLm1lc2h0YXN0aWMuWE1vZGVtSAASLgoIbWV0YWRhdGEY", - "DSABKAsyGi5tZXNodGFzdGljLkRldmljZU1ldGFkYXRhSAASRAoWbXF0dENs", - "aWVudFByb3h5TWVzc2FnZRgOIAEoCzIiLm1lc2h0YXN0aWMuTXF0dENsaWVu", - "dFByb3h5TWVzc2FnZUgAQhEKD3BheWxvYWRfdmFyaWFudCLoAQoHVG9SYWRp", - "bxIoCgZwYWNrZXQYASABKAsyFi5tZXNodGFzdGljLk1lc2hQYWNrZXRIABIY", - "Cg53YW50X2NvbmZpZ19pZBgDIAEoDUgAEhQKCmRpc2Nvbm5lY3QYBCABKAhI", - "ABIqCgx4bW9kZW1QYWNrZXQYBSABKAsyEi5tZXNodGFzdGljLlhNb2RlbUgA", - "EkQKFm1xdHRDbGllbnRQcm94eU1lc3NhZ2UYBiABKAsyIi5tZXNodGFzdGlj", - "Lk1xdHRDbGllbnRQcm94eU1lc3NhZ2VIAEIRCg9wYXlsb2FkX3ZhcmlhbnQi", - "QAoKQ29tcHJlc3NlZBIkCgdwb3J0bnVtGAEgASgOMhMubWVzaHRhc3RpYy5Q", - "b3J0TnVtEgwKBGRhdGEYAiABKAwihwEKDE5laWdoYm9ySW5mbxIPCgdub2Rl", - "X2lkGAEgASgNEhcKD2xhc3Rfc2VudF9ieV9pZBgCIAEoDRIkChxub2RlX2Jy", - "b2FkY2FzdF9pbnRlcnZhbF9zZWNzGAMgASgNEicKCW5laWdoYm9ycxgEIAMo", - "CzIULm1lc2h0YXN0aWMuTmVpZ2hib3IiZAoITmVpZ2hib3ISDwoHbm9kZV9p", - "ZBgBIAEoDRILCgNzbnIYAiABKAISFAoMbGFzdF9yeF90aW1lGAMgASgHEiQK", - "HG5vZGVfYnJvYWRjYXN0X2ludGVydmFsX3NlY3MYBCABKA0irQIKDkRldmlj", - "ZU1ldGFkYXRhEhgKEGZpcm13YXJlX3ZlcnNpb24YASABKAkSHAoUZGV2aWNl", - "X3N0YXRlX3ZlcnNpb24YAiABKA0SEwoLY2FuU2h1dGRvd24YAyABKAgSDwoH", - "aGFzV2lmaRgEIAEoCBIUCgxoYXNCbHVldG9vdGgYBSABKAgSEwoLaGFzRXRo", - "ZXJuZXQYBiABKAgSMgoEcm9sZRgHIAEoDjIkLm1lc2h0YXN0aWMuQ29uZmln", - "LkRldmljZUNvbmZpZy5Sb2xlEhYKDnBvc2l0aW9uX2ZsYWdzGAggASgNEisK", - "CGh3X21vZGVsGAkgASgOMhkubWVzaHRhc3RpYy5IYXJkd2FyZU1vZGVsEhkK", - "EWhhc1JlbW90ZUhhcmR3YXJlGAogASgIKtQHCg1IYXJkd2FyZU1vZGVsEgkK", - "BVVOU0VUEAASDAoIVExPUkFfVjIQARIMCghUTE9SQV9WMRACEhIKDlRMT1JB", - "X1YyXzFfMVA2EAMSCQoFVEJFQU0QBBIPCgtIRUxURUNfVjJfMBAFEg4KClRC", - "RUFNX1YwUDcQBhIKCgZUX0VDSE8QBxIQCgxUTE9SQV9WMV8xUDMQCBILCgdS", - "QUs0NjMxEAkSDwoLSEVMVEVDX1YyXzEQChINCglIRUxURUNfVjEQCxIYChRM", - "SUxZR09fVEJFQU1fUzNfQ09SRRAMEgwKCFJBSzExMjAwEA0SCwoHTkFOT19H", - "MRAOEhIKDlRMT1JBX1YyXzFfMVA4EA8SDwoLVExPUkFfVDNfUzMQEBIUChBO", - "QU5PX0cxX0VYUExPUkVSEBESEQoNTkFOT19HMl9VTFRSQRASEg0KCUxPUkFf", - "VFlQRRATEg4KClNUQVRJT05fRzEQGRIMCghSQUsxMTMxMBAaEhQKEFNFTlNF", - "TE9SQV9SUDIwNDAQGxIQCgxTRU5TRUxPUkFfUzMQHBINCglDQU5BUllPTkUQ", - "HRIPCgtSUDIwNDBfTE9SQRAeEg4KClNUQVRJT05fRzIQHxIRCg1MT1JBX1JF", - "TEFZX1YxECASDgoKTlJGNTI4NDBESxAhEgcKA1BQUhAiEg8KC0dFTklFQkxP", - "Q0tTECMSEQoNTlJGNTJfVU5LTk9XThAkEg0KCVBPUlREVUlOTxAlEg8KC0FO", - "RFJPSURfU0lNECYSCgoGRElZX1YxECcSFQoRTlJGNTI4NDBfUENBMTAwNTkQ", - "KBIKCgZEUl9ERVYQKRILCgdNNVNUQUNLECoSDQoJSEVMVEVDX1YzECsSEQoN", - "SEVMVEVDX1dTTF9WMxAsEhMKD0JFVEFGUFZfMjQwMF9UWBAtEhcKE0JFVEFG", - "UFZfOTAwX05BTk9fVFgQLhIMCghSUElfUElDTxAvEhsKF0hFTFRFQ19XSVJF", - "TEVTU19UUkFDS0VSEDASGQoVSEVMVEVDX1dJUkVMRVNTX1BBUEVSEDESCgoG", - "VF9ERUNLEDISDgoKVF9XQVRDSF9TMxAzEhEKDVBJQ09NUFVURVJfUzMQNBIP", - "CgtIRUxURUNfSFQ2MhA1EhIKDkVCWVRFX0VTUDMyX1MzEDYSEQoNRVNQMzJf", - "UzNfUElDTxA3Eg0KCUNIQVRURVJfMhA4Eh4KGkhFTFRFQ19XSVJFTEVTU19Q", - "QVBFUl9WMV8wEDkSIAocSEVMVEVDX1dJUkVMRVNTX1RSQUNLRVJfVjFfMBA6", - "Eg8KClBSSVZBVEVfSFcQ/wEqLAoJQ29uc3RhbnRzEggKBFpFUk8QABIVChBE", - "QVRBX1BBWUxPQURfTEVOEO0BKu4BChFDcml0aWNhbEVycm9yQ29kZRIICgRO", - "T05FEAASDwoLVFhfV0FUQ0hET0cQARIUChBTTEVFUF9FTlRFUl9XQUlUEAIS", - "DAoITk9fUkFESU8QAxIPCgtVTlNQRUNJRklFRBAEEhUKEVVCTE9YX1VOSVRf", - "RkFJTEVEEAUSDQoJTk9fQVhQMTkyEAYSGQoVSU5WQUxJRF9SQURJT19TRVRU", - "SU5HEAcSEwoPVFJBTlNNSVRfRkFJTEVEEAgSDAoIQlJPV05PVVQQCRISCg5T", - "WDEyNjJfRkFJTFVSRRAKEhEKDVJBRElPX1NQSV9CVUcQC0JfChNjb20uZ2Vl", - "a3N2aWxsZS5tZXNoQgpNZXNoUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0", - "aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnBy", - "b3RvMw==")); + "b3BzX2F3YXkYCSABKA0SEwoLaXNfZmF2b3JpdGUYCiABKAgiUAoKTXlOb2Rl", + "SW5mbxITCgtteV9ub2RlX251bRgBIAEoDRIUCgxyZWJvb3RfY291bnQYCCAB", + "KA0SFwoPbWluX2FwcF92ZXJzaW9uGAsgASgNIsABCglMb2dSZWNvcmQSDwoH", + "bWVzc2FnZRgBIAEoCRIMCgR0aW1lGAIgASgHEg4KBnNvdXJjZRgDIAEoCRIq", + "CgVsZXZlbBgEIAEoDjIbLm1lc2h0YXN0aWMuTG9nUmVjb3JkLkxldmVsIlgK", + "BUxldmVsEgkKBVVOU0VUEAASDAoIQ1JJVElDQUwQMhIJCgVFUlJPUhAoEgsK", + "B1dBUk5JTkcQHhIICgRJTkZPEBQSCQoFREVCVUcQChIJCgVUUkFDRRAFIlAK", + "C1F1ZXVlU3RhdHVzEgsKA3JlcxgBIAEoBRIMCgRmcmVlGAIgASgNEg4KBm1h", + "eGxlbhgDIAEoDRIWCg5tZXNoX3BhY2tldF9pZBgEIAEoDSLbBAoJRnJvbVJh", + "ZGlvEgoKAmlkGAEgASgNEigKBnBhY2tldBgCIAEoCzIWLm1lc2h0YXN0aWMu", + "TWVzaFBhY2tldEgAEikKB215X2luZm8YAyABKAsyFi5tZXNodGFzdGljLk15", + "Tm9kZUluZm9IABIpCglub2RlX2luZm8YBCABKAsyFC5tZXNodGFzdGljLk5v", + "ZGVJbmZvSAASJAoGY29uZmlnGAUgASgLMhIubWVzaHRhc3RpYy5Db25maWdI", + "ABIrCgpsb2dfcmVjb3JkGAYgASgLMhUubWVzaHRhc3RpYy5Mb2dSZWNvcmRI", + "ABIcChJjb25maWdfY29tcGxldGVfaWQYByABKA1IABISCghyZWJvb3RlZBgI", + "IAEoCEgAEjAKDG1vZHVsZUNvbmZpZxgJIAEoCzIYLm1lc2h0YXN0aWMuTW9k", + "dWxlQ29uZmlnSAASJgoHY2hhbm5lbBgKIAEoCzITLm1lc2h0YXN0aWMuQ2hh", + "bm5lbEgAEi4KC3F1ZXVlU3RhdHVzGAsgASgLMhcubWVzaHRhc3RpYy5RdWV1", + "ZVN0YXR1c0gAEioKDHhtb2RlbVBhY2tldBgMIAEoCzISLm1lc2h0YXN0aWMu", + "WE1vZGVtSAASLgoIbWV0YWRhdGEYDSABKAsyGi5tZXNodGFzdGljLkRldmlj", + "ZU1ldGFkYXRhSAASRAoWbXF0dENsaWVudFByb3h5TWVzc2FnZRgOIAEoCzIi", + "Lm1lc2h0YXN0aWMuTXF0dENsaWVudFByb3h5TWVzc2FnZUgAQhEKD3BheWxv", + "YWRfdmFyaWFudCKUAgoHVG9SYWRpbxIoCgZwYWNrZXQYASABKAsyFi5tZXNo", + "dGFzdGljLk1lc2hQYWNrZXRIABIYCg53YW50X2NvbmZpZ19pZBgDIAEoDUgA", + "EhQKCmRpc2Nvbm5lY3QYBCABKAhIABIqCgx4bW9kZW1QYWNrZXQYBSABKAsy", + "Ei5tZXNodGFzdGljLlhNb2RlbUgAEkQKFm1xdHRDbGllbnRQcm94eU1lc3Nh", + "Z2UYBiABKAsyIi5tZXNodGFzdGljLk1xdHRDbGllbnRQcm94eU1lc3NhZ2VI", + "ABIqCgloZWFydGJlYXQYByABKAsyFS5tZXNodGFzdGljLkhlYXJ0YmVhdEgA", + "QhEKD3BheWxvYWRfdmFyaWFudCJACgpDb21wcmVzc2VkEiQKB3BvcnRudW0Y", + "ASABKA4yEy5tZXNodGFzdGljLlBvcnROdW0SDAoEZGF0YRgCIAEoDCKHAQoM", + "TmVpZ2hib3JJbmZvEg8KB25vZGVfaWQYASABKA0SFwoPbGFzdF9zZW50X2J5", + "X2lkGAIgASgNEiQKHG5vZGVfYnJvYWRjYXN0X2ludGVydmFsX3NlY3MYAyAB", + "KA0SJwoJbmVpZ2hib3JzGAQgAygLMhQubWVzaHRhc3RpYy5OZWlnaGJvciJk", + "CghOZWlnaGJvchIPCgdub2RlX2lkGAEgASgNEgsKA3NuchgCIAEoAhIUCgxs", + "YXN0X3J4X3RpbWUYAyABKAcSJAocbm9kZV9icm9hZGNhc3RfaW50ZXJ2YWxf", + "c2VjcxgEIAEoDSKtAgoORGV2aWNlTWV0YWRhdGESGAoQZmlybXdhcmVfdmVy", + "c2lvbhgBIAEoCRIcChRkZXZpY2Vfc3RhdGVfdmVyc2lvbhgCIAEoDRITCgtj", + "YW5TaHV0ZG93bhgDIAEoCBIPCgdoYXNXaWZpGAQgASgIEhQKDGhhc0JsdWV0", + "b290aBgFIAEoCBITCgtoYXNFdGhlcm5ldBgGIAEoCBIyCgRyb2xlGAcgASgO", + "MiQubWVzaHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSFgoOcG9z", + "aXRpb25fZmxhZ3MYCCABKA0SKwoIaHdfbW9kZWwYCSABKA4yGS5tZXNodGFz", + "dGljLkhhcmR3YXJlTW9kZWwSGQoRaGFzUmVtb3RlSGFyZHdhcmUYCiABKAgi", + "CwoJSGVhcnRiZWF0IlUKFU5vZGVSZW1vdGVIYXJkd2FyZVBpbhIQCghub2Rl", + "X251bRgBIAEoDRIqCgNwaW4YAiABKAsyHS5tZXNodGFzdGljLlJlbW90ZUhh", + "cmR3YXJlUGluKtQHCg1IYXJkd2FyZU1vZGVsEgkKBVVOU0VUEAASDAoIVExP", + "UkFfVjIQARIMCghUTE9SQV9WMRACEhIKDlRMT1JBX1YyXzFfMVA2EAMSCQoF", + "VEJFQU0QBBIPCgtIRUxURUNfVjJfMBAFEg4KClRCRUFNX1YwUDcQBhIKCgZU", + "X0VDSE8QBxIQCgxUTE9SQV9WMV8xUDMQCBILCgdSQUs0NjMxEAkSDwoLSEVM", + "VEVDX1YyXzEQChINCglIRUxURUNfVjEQCxIYChRMSUxZR09fVEJFQU1fUzNf", + "Q09SRRAMEgwKCFJBSzExMjAwEA0SCwoHTkFOT19HMRAOEhIKDlRMT1JBX1Yy", + "XzFfMVA4EA8SDwoLVExPUkFfVDNfUzMQEBIUChBOQU5PX0cxX0VYUExPUkVS", + "EBESEQoNTkFOT19HMl9VTFRSQRASEg0KCUxPUkFfVFlQRRATEg4KClNUQVRJ", + "T05fRzEQGRIMCghSQUsxMTMxMBAaEhQKEFNFTlNFTE9SQV9SUDIwNDAQGxIQ", + "CgxTRU5TRUxPUkFfUzMQHBINCglDQU5BUllPTkUQHRIPCgtSUDIwNDBfTE9S", + "QRAeEg4KClNUQVRJT05fRzIQHxIRCg1MT1JBX1JFTEFZX1YxECASDgoKTlJG", + "NTI4NDBESxAhEgcKA1BQUhAiEg8KC0dFTklFQkxPQ0tTECMSEQoNTlJGNTJf", + "VU5LTk9XThAkEg0KCVBPUlREVUlOTxAlEg8KC0FORFJPSURfU0lNECYSCgoG", + "RElZX1YxECcSFQoRTlJGNTI4NDBfUENBMTAwNTkQKBIKCgZEUl9ERVYQKRIL", + "CgdNNVNUQUNLECoSDQoJSEVMVEVDX1YzECsSEQoNSEVMVEVDX1dTTF9WMxAs", + "EhMKD0JFVEFGUFZfMjQwMF9UWBAtEhcKE0JFVEFGUFZfOTAwX05BTk9fVFgQ", + "LhIMCghSUElfUElDTxAvEhsKF0hFTFRFQ19XSVJFTEVTU19UUkFDS0VSEDAS", + "GQoVSEVMVEVDX1dJUkVMRVNTX1BBUEVSEDESCgoGVF9ERUNLEDISDgoKVF9X", + "QVRDSF9TMxAzEhEKDVBJQ09NUFVURVJfUzMQNBIPCgtIRUxURUNfSFQ2MhA1", + "EhIKDkVCWVRFX0VTUDMyX1MzEDYSEQoNRVNQMzJfUzNfUElDTxA3Eg0KCUNI", + "QVRURVJfMhA4Eh4KGkhFTFRFQ19XSVJFTEVTU19QQVBFUl9WMV8wEDkSIAoc", + "SEVMVEVDX1dJUkVMRVNTX1RSQUNLRVJfVjFfMBA6Eg8KClBSSVZBVEVfSFcQ", + "/wEqLAoJQ29uc3RhbnRzEggKBFpFUk8QABIVChBEQVRBX1BBWUxPQURfTEVO", + "EO0BKu4BChFDcml0aWNhbEVycm9yQ29kZRIICgROT05FEAASDwoLVFhfV0FU", + "Q0hET0cQARIUChBTTEVFUF9FTlRFUl9XQUlUEAISDAoITk9fUkFESU8QAxIP", + "CgtVTlNQRUNJRklFRBAEEhUKEVVCTE9YX1VOSVRfRkFJTEVEEAUSDQoJTk9f", + "QVhQMTkyEAYSGQoVSU5WQUxJRF9SQURJT19TRVRUSU5HEAcSEwoPVFJBTlNN", + "SVRfRkFJTEVEEAgSDAoIQlJPV05PVVQQCRISCg5TWDEyNjJfRkFJTFVSRRAK", + "EhEKDVJBRElPX1NQSV9CVUcQC0JfChNjb20uZ2Vla3N2aWxsZS5tZXNoQgpN", + "ZXNoUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVk", + "qgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.ChannelReflection.Descriptor, global::Meshtastic.Protobufs.ConfigReflection.Descriptor, global::Meshtastic.Protobufs.ModuleConfigReflection.Descriptor, global::Meshtastic.Protobufs.PortnumsReflection.Descriptor, global::Meshtastic.Protobufs.TelemetryReflection.Descriptor, global::Meshtastic.Protobufs.XmodemReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.HardwareModel), typeof(global::Meshtastic.Protobufs.Constants), typeof(global::Meshtastic.Protobufs.CriticalErrorCode), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -168,16 +171,18 @@ static MeshReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Waypoint), global::Meshtastic.Protobufs.Waypoint.Parser, new[]{ "Id", "LatitudeI", "LongitudeI", "Expire", "LockedTo", "Name", "Description", "Icon" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.MqttClientProxyMessage), global::Meshtastic.Protobufs.MqttClientProxyMessage.Parser, new[]{ "Topic", "Data", "Text", "Retained" }, new[]{ "PayloadVariant" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.MeshPacket), global::Meshtastic.Protobufs.MeshPacket.Parser, new[]{ "From", "To", "Channel", "Decoded", "Encrypted", "Id", "RxTime", "RxSnr", "HopLimit", "WantAck", "Priority", "RxRssi", "Delayed", "ViaMqtt", "HopStart" }, new[]{ "PayloadVariant" }, new[]{ typeof(global::Meshtastic.Protobufs.MeshPacket.Types.Priority), typeof(global::Meshtastic.Protobufs.MeshPacket.Types.Delayed) }, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeInfo), global::Meshtastic.Protobufs.NodeInfo.Parser, new[]{ "Num", "User", "Position", "Snr", "LastHeard", "DeviceMetrics", "Channel", "ViaMqtt", "HopsAway" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeInfo), global::Meshtastic.Protobufs.NodeInfo.Parser, new[]{ "Num", "User", "Position", "Snr", "LastHeard", "DeviceMetrics", "Channel", "ViaMqtt", "HopsAway", "IsFavorite" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.MyNodeInfo), global::Meshtastic.Protobufs.MyNodeInfo.Parser, new[]{ "MyNodeNum", "RebootCount", "MinAppVersion" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.LogRecord), global::Meshtastic.Protobufs.LogRecord.Parser, new[]{ "Message", "Time", "Source", "Level" }, null, new[]{ typeof(global::Meshtastic.Protobufs.LogRecord.Types.Level) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.QueueStatus), global::Meshtastic.Protobufs.QueueStatus.Parser, new[]{ "Res", "Free", "Maxlen", "MeshPacketId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.FromRadio), global::Meshtastic.Protobufs.FromRadio.Parser, new[]{ "Id", "Packet", "MyInfo", "NodeInfo", "Config", "LogRecord", "ConfigCompleteId", "Rebooted", "ModuleConfig", "Channel", "QueueStatus", "XmodemPacket", "Metadata", "MqttClientProxyMessage" }, new[]{ "PayloadVariant" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ToRadio), global::Meshtastic.Protobufs.ToRadio.Parser, new[]{ "Packet", "WantConfigId", "Disconnect", "XmodemPacket", "MqttClientProxyMessage" }, new[]{ "PayloadVariant" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ToRadio), global::Meshtastic.Protobufs.ToRadio.Parser, new[]{ "Packet", "WantConfigId", "Disconnect", "XmodemPacket", "MqttClientProxyMessage", "Heartbeat" }, new[]{ "PayloadVariant" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Compressed), global::Meshtastic.Protobufs.Compressed.Parser, new[]{ "Portnum", "Data" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NeighborInfo), global::Meshtastic.Protobufs.NeighborInfo.Parser, new[]{ "NodeId", "LastSentById", "NodeBroadcastIntervalSecs", "Neighbors" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Neighbor), global::Meshtastic.Protobufs.Neighbor.Parser, new[]{ "NodeId", "Snr", "LastRxTime", "NodeBroadcastIntervalSecs" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.DeviceMetadata), global::Meshtastic.Protobufs.DeviceMetadata.Parser, new[]{ "FirmwareVersion", "DeviceStateVersion", "CanShutdown", "HasWifi", "HasBluetooth", "HasEthernet", "Role", "PositionFlags", "HwModel", "HasRemoteHardware" }, null, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.DeviceMetadata), global::Meshtastic.Protobufs.DeviceMetadata.Parser, new[]{ "FirmwareVersion", "DeviceStateVersion", "CanShutdown", "HasWifi", "HasBluetooth", "HasEthernet", "Role", "PositionFlags", "HwModel", "HasRemoteHardware" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Heartbeat), global::Meshtastic.Protobufs.Heartbeat.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.NodeRemoteHardwarePin), global::Meshtastic.Protobufs.NodeRemoteHardwarePin.Parser, new[]{ "NodeNum", "Pin" }, null, null, null, null) })); } #endregion @@ -5189,6 +5194,7 @@ public NodeInfo(NodeInfo other) : this() { channel_ = other.channel_; viaMqtt_ = other.viaMqtt_; hopsAway_ = other.hopsAway_; + isFavorite_ = other.isFavorite_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5344,6 +5350,23 @@ public uint HopsAway { } } + /// Field number for the "is_favorite" field. + public const int IsFavoriteFieldNumber = 10; + private bool isFavorite_; + /// + /// + /// True if node is in our favorites list + /// Persists between NodeDB internal clean ups + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsFavorite { + get { return isFavorite_; } + set { + isFavorite_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -5368,6 +5391,7 @@ public bool Equals(NodeInfo other) { if (Channel != other.Channel) return false; if (ViaMqtt != other.ViaMqtt) return false; if (HopsAway != other.HopsAway) return false; + if (IsFavorite != other.IsFavorite) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5384,6 +5408,7 @@ public override int GetHashCode() { if (Channel != 0) hash ^= Channel.GetHashCode(); if (ViaMqtt != false) hash ^= ViaMqtt.GetHashCode(); if (HopsAway != 0) hash ^= HopsAway.GetHashCode(); + if (IsFavorite != false) hash ^= IsFavorite.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5438,6 +5463,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteUInt32(HopsAway); } + if (IsFavorite != false) { + output.WriteRawTag(80); + output.WriteBool(IsFavorite); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5484,6 +5513,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteUInt32(HopsAway); } + if (IsFavorite != false) { + output.WriteRawTag(80); + output.WriteBool(IsFavorite); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5521,6 +5554,9 @@ public int CalculateSize() { if (HopsAway != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HopsAway); } + if (IsFavorite != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5569,6 +5605,9 @@ public void MergeFrom(NodeInfo other) { if (other.HopsAway != 0) { HopsAway = other.HopsAway; } + if (other.IsFavorite != false) { + IsFavorite = other.IsFavorite; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5629,6 +5668,10 @@ public void MergeFrom(pb::CodedInputStream input) { HopsAway = input.ReadUInt32(); break; } + case 80: { + IsFavorite = input.ReadBool(); + break; + } } } #endif @@ -5689,6 +5732,10 @@ public void MergeFrom(pb::CodedInputStream input) { HopsAway = input.ReadUInt32(); break; } + case 80: { + IsFavorite = input.ReadBool(); + break; + } } } } @@ -7672,6 +7719,9 @@ public ToRadio(ToRadio other) : this() { case PayloadVariantOneofCase.MqttClientProxyMessage: MqttClientProxyMessage = other.MqttClientProxyMessage.Clone(); break; + case PayloadVariantOneofCase.Heartbeat: + Heartbeat = other.Heartbeat.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -7768,6 +7818,22 @@ public bool Disconnect { } } + /// Field number for the "heartbeat" field. + public const int HeartbeatFieldNumber = 7; + /// + /// + /// Heartbeat message (used to keep the device connection awake on serial) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Heartbeat Heartbeat { + get { return payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat ? (global::Meshtastic.Protobufs.Heartbeat) payloadVariant_ : null; } + set { + payloadVariant_ = value; + payloadVariantCase_ = value == null ? PayloadVariantOneofCase.None : PayloadVariantOneofCase.Heartbeat; + } + } + private object payloadVariant_; /// Enum of possible cases for the "payload_variant" oneof. public enum PayloadVariantOneofCase { @@ -7777,6 +7843,7 @@ public enum PayloadVariantOneofCase { Disconnect = 4, XmodemPacket = 5, MqttClientProxyMessage = 6, + Heartbeat = 7, } private PayloadVariantOneofCase payloadVariantCase_ = PayloadVariantOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7812,6 +7879,7 @@ public bool Equals(ToRadio other) { if (Disconnect != other.Disconnect) return false; if (!object.Equals(XmodemPacket, other.XmodemPacket)) return false; if (!object.Equals(MqttClientProxyMessage, other.MqttClientProxyMessage)) return false; + if (!object.Equals(Heartbeat, other.Heartbeat)) return false; if (PayloadVariantCase != other.PayloadVariantCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7825,6 +7893,7 @@ public override int GetHashCode() { if (payloadVariantCase_ == PayloadVariantOneofCase.Disconnect) hash ^= Disconnect.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.XmodemPacket) hash ^= XmodemPacket.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.MqttClientProxyMessage) hash ^= MqttClientProxyMessage.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) hash ^= Heartbeat.GetHashCode(); hash ^= (int) payloadVariantCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -7864,6 +7933,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(MqttClientProxyMessage); } + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) { + output.WriteRawTag(58); + output.WriteMessage(Heartbeat); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7894,6 +7967,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(MqttClientProxyMessage); } + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) { + output.WriteRawTag(58); + output.WriteMessage(Heartbeat); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7919,6 +7996,9 @@ public int CalculateSize() { if (payloadVariantCase_ == PayloadVariantOneofCase.MqttClientProxyMessage) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(MqttClientProxyMessage); } + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Heartbeat); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7956,6 +8036,12 @@ public void MergeFrom(ToRadio other) { } MqttClientProxyMessage.MergeFrom(other.MqttClientProxyMessage); break; + case PayloadVariantOneofCase.Heartbeat: + if (Heartbeat == null) { + Heartbeat = new global::Meshtastic.Protobufs.Heartbeat(); + } + Heartbeat.MergeFrom(other.Heartbeat); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -8008,6 +8094,15 @@ public void MergeFrom(pb::CodedInputStream input) { MqttClientProxyMessage = subBuilder; break; } + case 58: { + global::Meshtastic.Protobufs.Heartbeat subBuilder = new global::Meshtastic.Protobufs.Heartbeat(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) { + subBuilder.MergeFrom(Heartbeat); + } + input.ReadMessage(subBuilder); + Heartbeat = subBuilder; + break; + } } } #endif @@ -8058,6 +8153,15 @@ public void MergeFrom(pb::CodedInputStream input) { MqttClientProxyMessage = subBuilder; break; } + case 58: { + global::Meshtastic.Protobufs.Heartbeat subBuilder = new global::Meshtastic.Protobufs.Heartbeat(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Heartbeat) { + subBuilder.MergeFrom(Heartbeat); + } + input.ReadMessage(subBuilder); + Heartbeat = subBuilder; + break; + } } } } @@ -9500,6 +9604,410 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// + /// A heartbeat message is sent to the node from the client to keep the connection alive. + /// This is currently only needed to keep serial connections alive, but can be used by any PhoneAPI. + /// + public sealed partial class Heartbeat : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Heartbeat()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Meshtastic.Protobufs.MeshReflection.Descriptor.MessageTypes[18]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Heartbeat() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Heartbeat(Heartbeat other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Heartbeat Clone() { + return new Heartbeat(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Heartbeat); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Heartbeat other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Heartbeat other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + /// + /// + /// RemoteHardwarePins associated with a node + /// + public sealed partial class NodeRemoteHardwarePin : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NodeRemoteHardwarePin()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Meshtastic.Protobufs.MeshReflection.Descriptor.MessageTypes[19]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NodeRemoteHardwarePin() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NodeRemoteHardwarePin(NodeRemoteHardwarePin other) : this() { + nodeNum_ = other.nodeNum_; + pin_ = other.pin_ != null ? other.pin_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NodeRemoteHardwarePin Clone() { + return new NodeRemoteHardwarePin(this); + } + + /// Field number for the "node_num" field. + public const int NodeNumFieldNumber = 1; + private uint nodeNum_; + /// + /// + /// The node_num exposing the available gpio pin + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint NodeNum { + get { return nodeNum_; } + set { + nodeNum_ = value; + } + } + + /// Field number for the "pin" field. + public const int PinFieldNumber = 2; + private global::Meshtastic.Protobufs.RemoteHardwarePin pin_; + /// + /// + /// The the available gpio pin for usage with RemoteHardware module + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.RemoteHardwarePin Pin { + get { return pin_; } + set { + pin_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NodeRemoteHardwarePin); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NodeRemoteHardwarePin other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (NodeNum != other.NodeNum) return false; + if (!object.Equals(Pin, other.Pin)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (NodeNum != 0) hash ^= NodeNum.GetHashCode(); + if (pin_ != null) hash ^= Pin.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (NodeNum != 0) { + output.WriteRawTag(8); + output.WriteUInt32(NodeNum); + } + if (pin_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Pin); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (NodeNum != 0) { + output.WriteRawTag(8); + output.WriteUInt32(NodeNum); + } + if (pin_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Pin); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (NodeNum != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(NodeNum); + } + if (pin_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Pin); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NodeRemoteHardwarePin other) { + if (other == null) { + return; + } + if (other.NodeNum != 0) { + NodeNum = other.NodeNum; + } + if (other.pin_ != null) { + if (pin_ == null) { + Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); + } + Pin.MergeFrom(other.Pin); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + NodeNum = input.ReadUInt32(); + break; + } + case 18: { + if (pin_ == null) { + Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); + } + input.ReadMessage(Pin); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + NodeNum = input.ReadUInt32(); + break; + } + case 18: { + if (pin_ == null) { + Pin = new global::Meshtastic.Protobufs.RemoteHardwarePin(); + } + input.ReadMessage(Pin); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Meshtastic/Generated/ModuleConfig.cs b/Meshtastic/Generated/ModuleConfig.cs index d849bed..7104857 100644 --- a/Meshtastic/Generated/ModuleConfig.cs +++ b/Meshtastic/Generated/ModuleConfig.cs @@ -25,7 +25,7 @@ static ModuleConfigReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "Ch5tZXNodGFzdGljL21vZHVsZV9jb25maWcucHJvdG8SCm1lc2h0YXN0aWMi", - "7CAKDE1vZHVsZUNvbmZpZxIzCgRtcXR0GAEgASgLMiMubWVzaHRhc3RpYy5N", + "pCIKDE1vZHVsZUNvbmZpZxIzCgRtcXR0GAEgASgLMiMubWVzaHRhc3RpYy5N", "b2R1bGVDb25maWcuTVFUVENvbmZpZ0gAEjcKBnNlcmlhbBgCIAEoCzIlLm1l", "c2h0YXN0aWMuTW9kdWxlQ29uZmlnLlNlcmlhbENvbmZpZ0gAElQKFWV4dGVy", "bmFsX25vdGlmaWNhdGlvbhgDIAEoCzIzLm1lc2h0YXN0aWMuTW9kdWxlQ29u", @@ -44,91 +44,96 @@ static ModuleConfigReflection() { "TW9kdWxlQ29uZmlnLkFtYmllbnRMaWdodGluZ0NvbmZpZ0gAEkoKEGRldGVj", "dGlvbl9zZW5zb3IYDCABKAsyLi5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5E", "ZXRlY3Rpb25TZW5zb3JDb25maWdIABI/CgpwYXhjb3VudGVyGA0gASgLMiku", - "bWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUGF4Y291bnRlckNvbmZpZ0gAGsgB", + "bWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuUGF4Y291bnRlckNvbmZpZ0gAGrAC", "CgpNUVRUQ29uZmlnEg8KB2VuYWJsZWQYASABKAgSDwoHYWRkcmVzcxgCIAEo", "CRIQCgh1c2VybmFtZRgDIAEoCRIQCghwYXNzd29yZBgEIAEoCRIaChJlbmNy", "eXB0aW9uX2VuYWJsZWQYBSABKAgSFAoManNvbl9lbmFibGVkGAYgASgIEhMK", "C3Rsc19lbmFibGVkGAcgASgIEgwKBHJvb3QYCCABKAkSHwoXcHJveHlfdG9f", - "Y2xpZW50X2VuYWJsZWQYCSABKAgaggEKFFJlbW90ZUhhcmR3YXJlQ29uZmln", - "Eg8KB2VuYWJsZWQYASABKAgSIgoaYWxsb3dfdW5kZWZpbmVkX3Bpbl9hY2Nl", - "c3MYAiABKAgSNQoOYXZhaWxhYmxlX3BpbnMYAyADKAsyHS5tZXNodGFzdGlj", - "LlJlbW90ZUhhcmR3YXJlUGluGj4KEk5laWdoYm9ySW5mb0NvbmZpZxIPCgdl", - "bmFibGVkGAEgASgIEhcKD3VwZGF0ZV9pbnRlcnZhbBgCIAEoDRrSAQoVRGV0", - "ZWN0aW9uU2Vuc29yQ29uZmlnEg8KB2VuYWJsZWQYASABKAgSHgoWbWluaW11", - "bV9icm9hZGNhc3Rfc2VjcxgCIAEoDRIcChRzdGF0ZV9icm9hZGNhc3Rfc2Vj", - "cxgDIAEoDRIRCglzZW5kX2JlbGwYBCABKAgSDAoEbmFtZRgFIAEoCRITCgtt", - "b25pdG9yX3BpbhgGIAEoDRIgChhkZXRlY3Rpb25fdHJpZ2dlcmVkX2hpZ2gY", - "ByABKAgSEgoKdXNlX3B1bGx1cBgIIAEoCBrkAgoLQXVkaW9Db25maWcSFgoO", - "Y29kZWMyX2VuYWJsZWQYASABKAgSDwoHcHR0X3BpbhgCIAEoDRJACgdiaXRy", - "YXRlGAMgASgOMi8ubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuQXVkaW9Db25m", - "aWcuQXVkaW9fQmF1ZBIOCgZpMnNfd3MYBCABKA0SDgoGaTJzX3NkGAUgASgN", - "Eg8KB2kyc19kaW4YBiABKA0SDwoHaTJzX3NjaxgHIAEoDSKnAQoKQXVkaW9f", - "QmF1ZBISCg5DT0RFQzJfREVGQVVMVBAAEg8KC0NPREVDMl8zMjAwEAESDwoL", - "Q09ERUMyXzI0MDAQAhIPCgtDT0RFQzJfMTYwMBADEg8KC0NPREVDMl8xNDAw", - "EAQSDwoLQ09ERUMyXzEzMDAQBRIPCgtDT0RFQzJfMTIwMBAGEg4KCkNPREVD", - "Ml83MDAQBxIPCgtDT0RFQzJfNzAwQhAIGkcKEFBheGNvdW50ZXJDb25maWcS", - "DwoHZW5hYmxlZBgBIAEoCBIiChpwYXhjb3VudGVyX3VwZGF0ZV9pbnRlcnZh", - "bBgCIAEoDRrkBAoMU2VyaWFsQ29uZmlnEg8KB2VuYWJsZWQYASABKAgSDAoE", - "ZWNobxgCIAEoCBILCgNyeGQYAyABKA0SCwoDdHhkGAQgASgNEj8KBGJhdWQY", - "BSABKA4yMS5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5TZXJpYWxDb25maWcu", - "U2VyaWFsX0JhdWQSDwoHdGltZW91dBgGIAEoDRI/CgRtb2RlGAcgASgOMjEu", - "bWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuU2VyaWFsQ29uZmlnLlNlcmlhbF9N", - "b2RlEiQKHG92ZXJyaWRlX2NvbnNvbGVfc2VyaWFsX3BvcnQYCCABKAgiigIK", - "C1NlcmlhbF9CYXVkEhAKDEJBVURfREVGQVVMVBAAEgwKCEJBVURfMTEwEAES", - "DAoIQkFVRF8zMDAQAhIMCghCQVVEXzYwMBADEg0KCUJBVURfMTIwMBAEEg0K", - "CUJBVURfMjQwMBAFEg0KCUJBVURfNDgwMBAGEg0KCUJBVURfOTYwMBAHEg4K", - "CkJBVURfMTkyMDAQCBIOCgpCQVVEXzM4NDAwEAkSDgoKQkFVRF81NzYwMBAK", - "Eg8KC0JBVURfMTE1MjAwEAsSDwoLQkFVRF8yMzA0MDAQDBIPCgtCQVVEXzQ2", - "MDgwMBANEg8KC0JBVURfNTc2MDAwEA4SDwoLQkFVRF85MjE2MDAQDyJVCgtT", - "ZXJpYWxfTW9kZRILCgdERUZBVUxUEAASCgoGU0lNUExFEAESCQoFUFJPVE8Q", - "AhILCgdURVhUTVNHEAMSCAoETk1FQRAEEgsKB0NBTFRPUE8QBRrpAgoaRXh0", - "ZXJuYWxOb3RpZmljYXRpb25Db25maWcSDwoHZW5hYmxlZBgBIAEoCBIRCglv", - "dXRwdXRfbXMYAiABKA0SDgoGb3V0cHV0GAMgASgNEhQKDG91dHB1dF92aWJy", - "YRgIIAEoDRIVCg1vdXRwdXRfYnV6emVyGAkgASgNEg4KBmFjdGl2ZRgEIAEo", - "CBIVCg1hbGVydF9tZXNzYWdlGAUgASgIEhsKE2FsZXJ0X21lc3NhZ2Vfdmli", - "cmEYCiABKAgSHAoUYWxlcnRfbWVzc2FnZV9idXp6ZXIYCyABKAgSEgoKYWxl", - "cnRfYmVsbBgGIAEoCBIYChBhbGVydF9iZWxsX3ZpYnJhGAwgASgIEhkKEWFs", - "ZXJ0X2JlbGxfYnV6emVyGA0gASgIEg8KB3VzZV9wd20YByABKAgSEwoLbmFn", - "X3RpbWVvdXQYDiABKA0SGQoRdXNlX2kyc19hc19idXp6ZXIYDyABKAgahAEK", - "ElN0b3JlRm9yd2FyZENvbmZpZxIPCgdlbmFibGVkGAEgASgIEhEKCWhlYXJ0", - "YmVhdBgCIAEoCBIPCgdyZWNvcmRzGAMgASgNEhoKEmhpc3RvcnlfcmV0dXJu", - "X21heBgEIAEoDRIdChVoaXN0b3J5X3JldHVybl93aW5kb3cYBSABKA0aQAoP", - "UmFuZ2VUZXN0Q29uZmlnEg8KB2VuYWJsZWQYASABKAgSDgoGc2VuZGVyGAIg", - "ASgNEgwKBHNhdmUYAyABKAga5gIKD1RlbGVtZXRyeUNvbmZpZxIeChZkZXZp", - "Y2VfdXBkYXRlX2ludGVydmFsGAEgASgNEiMKG2Vudmlyb25tZW50X3VwZGF0", - "ZV9pbnRlcnZhbBgCIAEoDRInCh9lbnZpcm9ubWVudF9tZWFzdXJlbWVudF9l", - "bmFibGVkGAMgASgIEiIKGmVudmlyb25tZW50X3NjcmVlbl9lbmFibGVkGAQg", - "ASgIEiYKHmVudmlyb25tZW50X2Rpc3BsYXlfZmFocmVuaGVpdBgFIAEoCBIb", - "ChNhaXJfcXVhbGl0eV9lbmFibGVkGAYgASgIEhwKFGFpcl9xdWFsaXR5X2lu", - "dGVydmFsGAcgASgNEiEKGXBvd2VyX21lYXN1cmVtZW50X2VuYWJsZWQYCCAB", - "KAgSHQoVcG93ZXJfdXBkYXRlX2ludGVydmFsGAkgASgNEhwKFHBvd2VyX3Nj", - "cmVlbl9lbmFibGVkGAogASgIGtYEChNDYW5uZWRNZXNzYWdlQ29uZmlnEhcK", - "D3JvdGFyeTFfZW5hYmxlZBgBIAEoCBIZChFpbnB1dGJyb2tlcl9waW5fYRgC", - "IAEoDRIZChFpbnB1dGJyb2tlcl9waW5fYhgDIAEoDRIdChVpbnB1dGJyb2tl", - "cl9waW5fcHJlc3MYBCABKA0SWQoUaW5wdXRicm9rZXJfZXZlbnRfY3cYBSAB", - "KA4yOy5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5DYW5uZWRNZXNzYWdlQ29u", - "ZmlnLklucHV0RXZlbnRDaGFyEloKFWlucHV0YnJva2VyX2V2ZW50X2NjdxgG", - "IAEoDjI7Lm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkNhbm5lZE1lc3NhZ2VD", - "b25maWcuSW5wdXRFdmVudENoYXISXAoXaW5wdXRicm9rZXJfZXZlbnRfcHJl", - "c3MYByABKA4yOy5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5DYW5uZWRNZXNz", - "YWdlQ29uZmlnLklucHV0RXZlbnRDaGFyEhcKD3VwZG93bjFfZW5hYmxlZBgI", - "IAEoCBIPCgdlbmFibGVkGAkgASgIEhoKEmFsbG93X2lucHV0X3NvdXJjZRgK", - "IAEoCRIRCglzZW5kX2JlbGwYCyABKAgiYwoOSW5wdXRFdmVudENoYXISCAoE", - "Tk9ORRAAEgYKAlVQEBESCAoERE9XThASEggKBExFRlQQExIJCgVSSUdIVBAU", - "EgoKBlNFTEVDVBAKEggKBEJBQ0sQGxIKCgZDQU5DRUwQGBplChVBbWJpZW50", - "TGlnaHRpbmdDb25maWcSEQoJbGVkX3N0YXRlGAEgASgIEg8KB2N1cnJlbnQY", - "AiABKA0SCwoDcmVkGAMgASgNEg0KBWdyZWVuGAQgASgNEgwKBGJsdWUYBSAB", - "KA1CEQoPcGF5bG9hZF92YXJpYW50ImQKEVJlbW90ZUhhcmR3YXJlUGluEhAK", - "CGdwaW9fcGluGAEgASgNEgwKBG5hbWUYAiABKAkSLwoEdHlwZRgDIAEoDjIh", - "Lm1lc2h0YXN0aWMuUmVtb3RlSGFyZHdhcmVQaW5UeXBlKkkKFVJlbW90ZUhh", - "cmR3YXJlUGluVHlwZRILCgdVTktOT1dOEAASEAoMRElHSVRBTF9SRUFEEAES", - "EQoNRElHSVRBTF9XUklURRACQmcKE2NvbS5nZWVrc3ZpbGxlLm1lc2hCEk1v", - "ZHVsZUNvbmZpZ1Byb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dl", - "bmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM=")); + "Y2xpZW50X2VuYWJsZWQYCSABKAgSHQoVbWFwX3JlcG9ydGluZ19lbmFibGVk", + "GAogASgIEkcKE21hcF9yZXBvcnRfc2V0dGluZ3MYCyABKAsyKi5tZXNodGFz", + "dGljLk1vZHVsZUNvbmZpZy5NYXBSZXBvcnRTZXR0aW5ncxpOChFNYXBSZXBv", + "cnRTZXR0aW5ncxIdChVwdWJsaXNoX2ludGVydmFsX3NlY3MYASABKA0SGgoS", + "cG9zaXRpb25fcHJlY2lzaW9uGAIgASgNGoIBChRSZW1vdGVIYXJkd2FyZUNv", + "bmZpZxIPCgdlbmFibGVkGAEgASgIEiIKGmFsbG93X3VuZGVmaW5lZF9waW5f", + "YWNjZXNzGAIgASgIEjUKDmF2YWlsYWJsZV9waW5zGAMgAygLMh0ubWVzaHRh", + "c3RpYy5SZW1vdGVIYXJkd2FyZVBpbho+ChJOZWlnaGJvckluZm9Db25maWcS", + "DwoHZW5hYmxlZBgBIAEoCBIXCg91cGRhdGVfaW50ZXJ2YWwYAiABKA0a0gEK", + "FURldGVjdGlvblNlbnNvckNvbmZpZxIPCgdlbmFibGVkGAEgASgIEh4KFm1p", + "bmltdW1fYnJvYWRjYXN0X3NlY3MYAiABKA0SHAoUc3RhdGVfYnJvYWRjYXN0", + "X3NlY3MYAyABKA0SEQoJc2VuZF9iZWxsGAQgASgIEgwKBG5hbWUYBSABKAkS", + "EwoLbW9uaXRvcl9waW4YBiABKA0SIAoYZGV0ZWN0aW9uX3RyaWdnZXJlZF9o", + "aWdoGAcgASgIEhIKCnVzZV9wdWxsdXAYCCABKAga5AIKC0F1ZGlvQ29uZmln", + "EhYKDmNvZGVjMl9lbmFibGVkGAEgASgIEg8KB3B0dF9waW4YAiABKA0SQAoH", + "Yml0cmF0ZRgDIAEoDjIvLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLkF1ZGlv", + "Q29uZmlnLkF1ZGlvX0JhdWQSDgoGaTJzX3dzGAQgASgNEg4KBmkyc19zZBgF", + "IAEoDRIPCgdpMnNfZGluGAYgASgNEg8KB2kyc19zY2sYByABKA0ipwEKCkF1", + "ZGlvX0JhdWQSEgoOQ09ERUMyX0RFRkFVTFQQABIPCgtDT0RFQzJfMzIwMBAB", + "Eg8KC0NPREVDMl8yNDAwEAISDwoLQ09ERUMyXzE2MDAQAxIPCgtDT0RFQzJf", + "MTQwMBAEEg8KC0NPREVDMl8xMzAwEAUSDwoLQ09ERUMyXzEyMDAQBhIOCgpD", + "T0RFQzJfNzAwEAcSDwoLQ09ERUMyXzcwMEIQCBpHChBQYXhjb3VudGVyQ29u", + "ZmlnEg8KB2VuYWJsZWQYASABKAgSIgoacGF4Y291bnRlcl91cGRhdGVfaW50", + "ZXJ2YWwYAiABKA0a5AQKDFNlcmlhbENvbmZpZxIPCgdlbmFibGVkGAEgASgI", + "EgwKBGVjaG8YAiABKAgSCwoDcnhkGAMgASgNEgsKA3R4ZBgEIAEoDRI/CgRi", + "YXVkGAUgASgOMjEubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuU2VyaWFsQ29u", + "ZmlnLlNlcmlhbF9CYXVkEg8KB3RpbWVvdXQYBiABKA0SPwoEbW9kZRgHIAEo", + "DjIxLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnLlNlcmlhbENvbmZpZy5TZXJp", + "YWxfTW9kZRIkChxvdmVycmlkZV9jb25zb2xlX3NlcmlhbF9wb3J0GAggASgI", + "IooCCgtTZXJpYWxfQmF1ZBIQCgxCQVVEX0RFRkFVTFQQABIMCghCQVVEXzEx", + "MBABEgwKCEJBVURfMzAwEAISDAoIQkFVRF82MDAQAxINCglCQVVEXzEyMDAQ", + "BBINCglCQVVEXzI0MDAQBRINCglCQVVEXzQ4MDAQBhINCglCQVVEXzk2MDAQ", + "BxIOCgpCQVVEXzE5MjAwEAgSDgoKQkFVRF8zODQwMBAJEg4KCkJBVURfNTc2", + "MDAQChIPCgtCQVVEXzExNTIwMBALEg8KC0JBVURfMjMwNDAwEAwSDwoLQkFV", + "RF80NjA4MDAQDRIPCgtCQVVEXzU3NjAwMBAOEg8KC0JBVURfOTIxNjAwEA8i", + "VQoLU2VyaWFsX01vZGUSCwoHREVGQVVMVBAAEgoKBlNJTVBMRRABEgkKBVBS", + "T1RPEAISCwoHVEVYVE1TRxADEggKBE5NRUEQBBILCgdDQUxUT1BPEAUa6QIK", + "GkV4dGVybmFsTm90aWZpY2F0aW9uQ29uZmlnEg8KB2VuYWJsZWQYASABKAgS", + "EQoJb3V0cHV0X21zGAIgASgNEg4KBm91dHB1dBgDIAEoDRIUCgxvdXRwdXRf", + "dmlicmEYCCABKA0SFQoNb3V0cHV0X2J1enplchgJIAEoDRIOCgZhY3RpdmUY", + "BCABKAgSFQoNYWxlcnRfbWVzc2FnZRgFIAEoCBIbChNhbGVydF9tZXNzYWdl", + "X3ZpYnJhGAogASgIEhwKFGFsZXJ0X21lc3NhZ2VfYnV6emVyGAsgASgIEhIK", + "CmFsZXJ0X2JlbGwYBiABKAgSGAoQYWxlcnRfYmVsbF92aWJyYRgMIAEoCBIZ", + "ChFhbGVydF9iZWxsX2J1enplchgNIAEoCBIPCgd1c2VfcHdtGAcgASgIEhMK", + "C25hZ190aW1lb3V0GA4gASgNEhkKEXVzZV9pMnNfYXNfYnV6emVyGA8gASgI", + "GoQBChJTdG9yZUZvcndhcmRDb25maWcSDwoHZW5hYmxlZBgBIAEoCBIRCglo", + "ZWFydGJlYXQYAiABKAgSDwoHcmVjb3JkcxgDIAEoDRIaChJoaXN0b3J5X3Jl", + "dHVybl9tYXgYBCABKA0SHQoVaGlzdG9yeV9yZXR1cm5fd2luZG93GAUgASgN", + "GkAKD1JhbmdlVGVzdENvbmZpZxIPCgdlbmFibGVkGAEgASgIEg4KBnNlbmRl", + "chgCIAEoDRIMCgRzYXZlGAMgASgIGuYCCg9UZWxlbWV0cnlDb25maWcSHgoW", + "ZGV2aWNlX3VwZGF0ZV9pbnRlcnZhbBgBIAEoDRIjChtlbnZpcm9ubWVudF91", + "cGRhdGVfaW50ZXJ2YWwYAiABKA0SJwofZW52aXJvbm1lbnRfbWVhc3VyZW1l", + "bnRfZW5hYmxlZBgDIAEoCBIiChplbnZpcm9ubWVudF9zY3JlZW5fZW5hYmxl", + "ZBgEIAEoCBImCh5lbnZpcm9ubWVudF9kaXNwbGF5X2ZhaHJlbmhlaXQYBSAB", + "KAgSGwoTYWlyX3F1YWxpdHlfZW5hYmxlZBgGIAEoCBIcChRhaXJfcXVhbGl0", + "eV9pbnRlcnZhbBgHIAEoDRIhChlwb3dlcl9tZWFzdXJlbWVudF9lbmFibGVk", + "GAggASgIEh0KFXBvd2VyX3VwZGF0ZV9pbnRlcnZhbBgJIAEoDRIcChRwb3dl", + "cl9zY3JlZW5fZW5hYmxlZBgKIAEoCBrWBAoTQ2FubmVkTWVzc2FnZUNvbmZp", + "ZxIXCg9yb3RhcnkxX2VuYWJsZWQYASABKAgSGQoRaW5wdXRicm9rZXJfcGlu", + "X2EYAiABKA0SGQoRaW5wdXRicm9rZXJfcGluX2IYAyABKA0SHQoVaW5wdXRi", + "cm9rZXJfcGluX3ByZXNzGAQgASgNElkKFGlucHV0YnJva2VyX2V2ZW50X2N3", + "GAUgASgOMjsubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuQ2FubmVkTWVzc2Fn", + "ZUNvbmZpZy5JbnB1dEV2ZW50Q2hhchJaChVpbnB1dGJyb2tlcl9ldmVudF9j", + "Y3cYBiABKA4yOy5tZXNodGFzdGljLk1vZHVsZUNvbmZpZy5DYW5uZWRNZXNz", + "YWdlQ29uZmlnLklucHV0RXZlbnRDaGFyElwKF2lucHV0YnJva2VyX2V2ZW50", + "X3ByZXNzGAcgASgOMjsubWVzaHRhc3RpYy5Nb2R1bGVDb25maWcuQ2FubmVk", + "TWVzc2FnZUNvbmZpZy5JbnB1dEV2ZW50Q2hhchIXCg91cGRvd24xX2VuYWJs", + "ZWQYCCABKAgSDwoHZW5hYmxlZBgJIAEoCBIaChJhbGxvd19pbnB1dF9zb3Vy", + "Y2UYCiABKAkSEQoJc2VuZF9iZWxsGAsgASgIImMKDklucHV0RXZlbnRDaGFy", + "EggKBE5PTkUQABIGCgJVUBAREggKBERPV04QEhIICgRMRUZUEBMSCQoFUklH", + "SFQQFBIKCgZTRUxFQ1QQChIICgRCQUNLEBsSCgoGQ0FOQ0VMEBgaZQoVQW1i", + "aWVudExpZ2h0aW5nQ29uZmlnEhEKCWxlZF9zdGF0ZRgBIAEoCBIPCgdjdXJy", + "ZW50GAIgASgNEgsKA3JlZBgDIAEoDRINCgVncmVlbhgEIAEoDRIMCgRibHVl", + "GAUgASgNQhEKD3BheWxvYWRfdmFyaWFudCJkChFSZW1vdGVIYXJkd2FyZVBp", + "bhIQCghncGlvX3BpbhgBIAEoDRIMCgRuYW1lGAIgASgJEi8KBHR5cGUYAyAB", + "KA4yIS5tZXNodGFzdGljLlJlbW90ZUhhcmR3YXJlUGluVHlwZSpJChVSZW1v", + "dGVIYXJkd2FyZVBpblR5cGUSCwoHVU5LTk9XThAAEhAKDERJR0lUQUxfUkVB", + "RBABEhEKDURJR0lUQUxfV1JJVEUQAkJnChNjb20uZ2Vla3N2aWxsZS5tZXNo", + "QhJNb2R1bGVDb25maWdQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9n", + "by9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.RemoteHardwarePinType), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig), global::Meshtastic.Protobufs.ModuleConfig.Parser, new[]{ "Mqtt", "Serial", "ExternalNotification", "StoreForward", "RangeTest", "Telemetry", "CannedMessage", "Audio", "RemoteHardware", "NeighborInfo", "AmbientLighting", "DetectionSensor", "Paxcounter" }, new[]{ "PayloadVariant" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.MQTTConfig), global::Meshtastic.Protobufs.ModuleConfig.Types.MQTTConfig.Parser, new[]{ "Enabled", "Address", "Username", "Password", "EncryptionEnabled", "JsonEnabled", "TlsEnabled", "Root", "ProxyToClientEnabled" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig), global::Meshtastic.Protobufs.ModuleConfig.Parser, new[]{ "Mqtt", "Serial", "ExternalNotification", "StoreForward", "RangeTest", "Telemetry", "CannedMessage", "Audio", "RemoteHardware", "NeighborInfo", "AmbientLighting", "DetectionSensor", "Paxcounter" }, new[]{ "PayloadVariant" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.MQTTConfig), global::Meshtastic.Protobufs.ModuleConfig.Types.MQTTConfig.Parser, new[]{ "Enabled", "Address", "Username", "Password", "EncryptionEnabled", "JsonEnabled", "TlsEnabled", "Root", "ProxyToClientEnabled", "MapReportingEnabled", "MapReportSettings" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings), global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings.Parser, new[]{ "PublishIntervalSecs", "PositionPrecision" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.RemoteHardwareConfig), global::Meshtastic.Protobufs.ModuleConfig.Types.RemoteHardwareConfig.Parser, new[]{ "Enabled", "AllowUndefinedPinAccess", "AvailablePins" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.NeighborInfoConfig), global::Meshtastic.Protobufs.ModuleConfig.Types.NeighborInfoConfig.Parser, new[]{ "Enabled", "UpdateInterval" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleConfig.Types.DetectionSensorConfig), global::Meshtastic.Protobufs.ModuleConfig.Types.DetectionSensorConfig.Parser, new[]{ "Enabled", "MinimumBroadcastSecs", "StateBroadcastSecs", "SendBell", "Name", "MonitorPin", "DetectionTriggeredHigh", "UsePullup" }, null, null, null, null), @@ -1143,6 +1148,8 @@ public MQTTConfig(MQTTConfig other) : this() { tlsEnabled_ = other.tlsEnabled_; root_ = other.root_; proxyToClientEnabled_ = other.proxyToClientEnabled_; + mapReportingEnabled_ = other.mapReportingEnabled_; + mapReportSettings_ = other.mapReportSettings_ != null ? other.mapReportSettings_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1306,6 +1313,38 @@ public bool ProxyToClientEnabled { } } + /// Field number for the "map_reporting_enabled" field. + public const int MapReportingEnabledFieldNumber = 10; + private bool mapReportingEnabled_; + /// + /// + /// If true, we will periodically report unencrypted information about our node to a map via MQTT + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool MapReportingEnabled { + get { return mapReportingEnabled_; } + set { + mapReportingEnabled_ = value; + } + } + + /// Field number for the "map_report_settings" field. + public const int MapReportSettingsFieldNumber = 11; + private global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings mapReportSettings_; + /// + /// + /// Settings for reporting information about our node to a map via MQTT + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings MapReportSettings { + get { return mapReportSettings_; } + set { + mapReportSettings_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1330,6 +1369,8 @@ public bool Equals(MQTTConfig other) { if (TlsEnabled != other.TlsEnabled) return false; if (Root != other.Root) return false; if (ProxyToClientEnabled != other.ProxyToClientEnabled) return false; + if (MapReportingEnabled != other.MapReportingEnabled) return false; + if (!object.Equals(MapReportSettings, other.MapReportSettings)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1346,6 +1387,8 @@ public override int GetHashCode() { if (TlsEnabled != false) hash ^= TlsEnabled.GetHashCode(); if (Root.Length != 0) hash ^= Root.GetHashCode(); if (ProxyToClientEnabled != false) hash ^= ProxyToClientEnabled.GetHashCode(); + if (MapReportingEnabled != false) hash ^= MapReportingEnabled.GetHashCode(); + if (mapReportSettings_ != null) hash ^= MapReportSettings.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1400,6 +1443,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteBool(ProxyToClientEnabled); } + if (MapReportingEnabled != false) { + output.WriteRawTag(80); + output.WriteBool(MapReportingEnabled); + } + if (mapReportSettings_ != null) { + output.WriteRawTag(90); + output.WriteMessage(MapReportSettings); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1446,6 +1497,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteBool(ProxyToClientEnabled); } + if (MapReportingEnabled != false) { + output.WriteRawTag(80); + output.WriteBool(MapReportingEnabled); + } + if (mapReportSettings_ != null) { + output.WriteRawTag(90); + output.WriteMessage(MapReportSettings); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1483,6 +1542,12 @@ public int CalculateSize() { if (ProxyToClientEnabled != false) { size += 1 + 1; } + if (MapReportingEnabled != false) { + size += 1 + 1; + } + if (mapReportSettings_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(MapReportSettings); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1522,6 +1587,15 @@ public void MergeFrom(MQTTConfig other) { if (other.ProxyToClientEnabled != false) { ProxyToClientEnabled = other.ProxyToClientEnabled; } + if (other.MapReportingEnabled != false) { + MapReportingEnabled = other.MapReportingEnabled; + } + if (other.mapReportSettings_ != null) { + if (mapReportSettings_ == null) { + MapReportSettings = new global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings(); + } + MapReportSettings.MergeFrom(other.MapReportSettings); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1573,6 +1647,17 @@ public void MergeFrom(pb::CodedInputStream input) { ProxyToClientEnabled = input.ReadBool(); break; } + case 80: { + MapReportingEnabled = input.ReadBool(); + break; + } + case 90: { + if (mapReportSettings_ == null) { + MapReportSettings = new global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings(); + } + input.ReadMessage(MapReportSettings); + break; + } } } #endif @@ -1624,6 +1709,255 @@ public void MergeFrom(pb::CodedInputStream input) { ProxyToClientEnabled = input.ReadBool(); break; } + case 80: { + MapReportingEnabled = input.ReadBool(); + break; + } + case 90: { + if (mapReportSettings_ == null) { + MapReportSettings = new global::Meshtastic.Protobufs.ModuleConfig.Types.MapReportSettings(); + } + input.ReadMessage(MapReportSettings); + break; + } + } + } + } + #endif + + } + + /// + /// + /// Settings for reporting unencrypted information about our node to a map via MQTT + /// + public sealed partial class MapReportSettings : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MapReportSettings()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReportSettings() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReportSettings(MapReportSettings other) : this() { + publishIntervalSecs_ = other.publishIntervalSecs_; + positionPrecision_ = other.positionPrecision_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReportSettings Clone() { + return new MapReportSettings(this); + } + + /// Field number for the "publish_interval_secs" field. + public const int PublishIntervalSecsFieldNumber = 1; + private uint publishIntervalSecs_; + /// + /// + /// How often we should report our info to the map (in seconds) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint PublishIntervalSecs { + get { return publishIntervalSecs_; } + set { + publishIntervalSecs_ = value; + } + } + + /// Field number for the "position_precision" field. + public const int PositionPrecisionFieldNumber = 2; + private uint positionPrecision_; + /// + /// + /// Bits of precision for the location sent (default of 32 is full precision). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint PositionPrecision { + get { return positionPrecision_; } + set { + positionPrecision_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MapReportSettings); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MapReportSettings other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PublishIntervalSecs != other.PublishIntervalSecs) return false; + if (PositionPrecision != other.PositionPrecision) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (PublishIntervalSecs != 0) hash ^= PublishIntervalSecs.GetHashCode(); + if (PositionPrecision != 0) hash ^= PositionPrecision.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (PublishIntervalSecs != 0) { + output.WriteRawTag(8); + output.WriteUInt32(PublishIntervalSecs); + } + if (PositionPrecision != 0) { + output.WriteRawTag(16); + output.WriteUInt32(PositionPrecision); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (PublishIntervalSecs != 0) { + output.WriteRawTag(8); + output.WriteUInt32(PublishIntervalSecs); + } + if (PositionPrecision != 0) { + output.WriteRawTag(16); + output.WriteUInt32(PositionPrecision); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (PublishIntervalSecs != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PublishIntervalSecs); + } + if (PositionPrecision != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PositionPrecision); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MapReportSettings other) { + if (other == null) { + return; + } + if (other.PublishIntervalSecs != 0) { + PublishIntervalSecs = other.PublishIntervalSecs; + } + if (other.PositionPrecision != 0) { + PositionPrecision = other.PositionPrecision; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PublishIntervalSecs = input.ReadUInt32(); + break; + } + case 16: { + PositionPrecision = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PublishIntervalSecs = input.ReadUInt32(); + break; + } + case 16: { + PositionPrecision = input.ReadUInt32(); + break; + } } } } @@ -1649,7 +1983,7 @@ public sealed partial class RemoteHardwareConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[4]; } + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[5]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3114,7 +3448,7 @@ public sealed partial class PaxcounterConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[5]; } + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[6]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3348,7 +3682,7 @@ public sealed partial class SerialConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[6]; } + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[7]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3881,7 +4215,7 @@ public sealed partial class ExternalNotificationConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[9]; } + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[10]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5304,7 +5638,7 @@ public sealed partial class TelemetryConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[10]; } + get { return global::Meshtastic.Protobufs.ModuleConfig.Descriptor.NestedTypes[11]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5873,7 +6207,7 @@ public sealed partial class CannedMessageConfig : pb::IMessage + /// + /// Information about a node intended to be reported unencrypted to a map using MQTT. + /// + public sealed partial class MapReport : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MapReport()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Meshtastic.Protobufs.MqttReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReport() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReport(MapReport other) : this() { + longName_ = other.longName_; + shortName_ = other.shortName_; + role_ = other.role_; + hwModel_ = other.hwModel_; + firmwareVersion_ = other.firmwareVersion_; + region_ = other.region_; + modemPreset_ = other.modemPreset_; + hasDefaultChannel_ = other.hasDefaultChannel_; + latitudeI_ = other.latitudeI_; + longitudeI_ = other.longitudeI_; + altitude_ = other.altitude_; + positionPrecision_ = other.positionPrecision_; + numOnlineLocalNodes_ = other.numOnlineLocalNodes_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MapReport Clone() { + return new MapReport(this); + } + + /// Field number for the "long_name" field. + public const int LongNameFieldNumber = 1; + private string longName_ = ""; + /// + /// + /// A full name for this user, i.e. "Kevin Hester" + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string LongName { + get { return longName_; } + set { + longName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "short_name" field. + public const int ShortNameFieldNumber = 2; + private string shortName_ = ""; + /// + /// + /// A VERY short name, ideally two characters. + /// Suitable for a tiny OLED screen + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ShortName { + get { return shortName_; } + set { + shortName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "role" field. + public const int RoleFieldNumber = 3; + private global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role role_ = global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client; + /// + /// + /// Role of the node that applies specific settings for a particular use-case + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role Role { + get { return role_; } + set { + role_ = value; + } + } + + /// Field number for the "hw_model" field. + public const int HwModelFieldNumber = 4; + private global::Meshtastic.Protobufs.HardwareModel hwModel_ = global::Meshtastic.Protobufs.HardwareModel.Unset; + /// + /// + /// Hardware model of the node, i.e. T-Beam, Heltec V3, etc... + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.HardwareModel HwModel { + get { return hwModel_; } + set { + hwModel_ = value; + } + } + + /// Field number for the "firmware_version" field. + public const int FirmwareVersionFieldNumber = 5; + private string firmwareVersion_ = ""; + /// + /// + /// Device firmware version string + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string FirmwareVersion { + get { return firmwareVersion_; } + set { + firmwareVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "region" field. + public const int RegionFieldNumber = 6; + private global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode region_ = global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset; + /// + /// + /// The region code for the radio (US, CN, EU433, etc...) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode Region { + get { return region_; } + set { + region_ = value; + } + } + + /// Field number for the "modem_preset" field. + public const int ModemPresetFieldNumber = 7; + private global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset modemPreset_ = global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast; + /// + /// + /// Modem preset used by the radio (LongFast, MediumSlow, etc...) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset ModemPreset { + get { return modemPreset_; } + set { + modemPreset_ = value; + } + } + + /// Field number for the "has_default_channel" field. + public const int HasDefaultChannelFieldNumber = 8; + private bool hasDefaultChannel_; + /// + /// + /// Whether the node has a channel with default PSK and name (LongFast, MediumSlow, etc...) + /// and it uses the default frequency slot given the region and modem preset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasDefaultChannel { + get { return hasDefaultChannel_; } + set { + hasDefaultChannel_ = value; + } + } + + /// Field number for the "latitude_i" field. + public const int LatitudeIFieldNumber = 9; + private int latitudeI_; + /// + /// + /// Latitude: multiply by 1e-7 to get degrees in floating point + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int LatitudeI { + get { return latitudeI_; } + set { + latitudeI_ = value; + } + } + + /// Field number for the "longitude_i" field. + public const int LongitudeIFieldNumber = 10; + private int longitudeI_; + /// + /// + /// Longitude: multiply by 1e-7 to get degrees in floating point + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int LongitudeI { + get { return longitudeI_; } + set { + longitudeI_ = value; + } + } + + /// Field number for the "altitude" field. + public const int AltitudeFieldNumber = 11; + private int altitude_; + /// + /// + /// Altitude in meters above MSL + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Altitude { + get { return altitude_; } + set { + altitude_ = value; + } + } + + /// Field number for the "position_precision" field. + public const int PositionPrecisionFieldNumber = 12; + private uint positionPrecision_; + /// + /// + /// Indicates the bits of precision for latitude and longitude set by the sending node + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint PositionPrecision { + get { return positionPrecision_; } + set { + positionPrecision_ = value; + } + } + + /// Field number for the "num_online_local_nodes" field. + public const int NumOnlineLocalNodesFieldNumber = 13; + private uint numOnlineLocalNodes_; + /// + /// + /// Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint NumOnlineLocalNodes { + get { return numOnlineLocalNodes_; } + set { + numOnlineLocalNodes_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as MapReport); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MapReport other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (LongName != other.LongName) return false; + if (ShortName != other.ShortName) return false; + if (Role != other.Role) return false; + if (HwModel != other.HwModel) return false; + if (FirmwareVersion != other.FirmwareVersion) return false; + if (Region != other.Region) return false; + if (ModemPreset != other.ModemPreset) return false; + if (HasDefaultChannel != other.HasDefaultChannel) return false; + if (LatitudeI != other.LatitudeI) return false; + if (LongitudeI != other.LongitudeI) return false; + if (Altitude != other.Altitude) return false; + if (PositionPrecision != other.PositionPrecision) return false; + if (NumOnlineLocalNodes != other.NumOnlineLocalNodes) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (LongName.Length != 0) hash ^= LongName.GetHashCode(); + if (ShortName.Length != 0) hash ^= ShortName.GetHashCode(); + if (Role != global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client) hash ^= Role.GetHashCode(); + if (HwModel != global::Meshtastic.Protobufs.HardwareModel.Unset) hash ^= HwModel.GetHashCode(); + if (FirmwareVersion.Length != 0) hash ^= FirmwareVersion.GetHashCode(); + if (Region != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset) hash ^= Region.GetHashCode(); + if (ModemPreset != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast) hash ^= ModemPreset.GetHashCode(); + if (HasDefaultChannel != false) hash ^= HasDefaultChannel.GetHashCode(); + if (LatitudeI != 0) hash ^= LatitudeI.GetHashCode(); + if (LongitudeI != 0) hash ^= LongitudeI.GetHashCode(); + if (Altitude != 0) hash ^= Altitude.GetHashCode(); + if (PositionPrecision != 0) hash ^= PositionPrecision.GetHashCode(); + if (NumOnlineLocalNodes != 0) hash ^= NumOnlineLocalNodes.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (LongName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(LongName); + } + if (ShortName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ShortName); + } + if (Role != global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client) { + output.WriteRawTag(24); + output.WriteEnum((int) Role); + } + if (HwModel != global::Meshtastic.Protobufs.HardwareModel.Unset) { + output.WriteRawTag(32); + output.WriteEnum((int) HwModel); + } + if (FirmwareVersion.Length != 0) { + output.WriteRawTag(42); + output.WriteString(FirmwareVersion); + } + if (Region != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset) { + output.WriteRawTag(48); + output.WriteEnum((int) Region); + } + if (ModemPreset != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast) { + output.WriteRawTag(56); + output.WriteEnum((int) ModemPreset); + } + if (HasDefaultChannel != false) { + output.WriteRawTag(64); + output.WriteBool(HasDefaultChannel); + } + if (LatitudeI != 0) { + output.WriteRawTag(77); + output.WriteSFixed32(LatitudeI); + } + if (LongitudeI != 0) { + output.WriteRawTag(85); + output.WriteSFixed32(LongitudeI); + } + if (Altitude != 0) { + output.WriteRawTag(88); + output.WriteInt32(Altitude); + } + if (PositionPrecision != 0) { + output.WriteRawTag(96); + output.WriteUInt32(PositionPrecision); + } + if (NumOnlineLocalNodes != 0) { + output.WriteRawTag(104); + output.WriteUInt32(NumOnlineLocalNodes); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (LongName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(LongName); + } + if (ShortName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ShortName); + } + if (Role != global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client) { + output.WriteRawTag(24); + output.WriteEnum((int) Role); + } + if (HwModel != global::Meshtastic.Protobufs.HardwareModel.Unset) { + output.WriteRawTag(32); + output.WriteEnum((int) HwModel); + } + if (FirmwareVersion.Length != 0) { + output.WriteRawTag(42); + output.WriteString(FirmwareVersion); + } + if (Region != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset) { + output.WriteRawTag(48); + output.WriteEnum((int) Region); + } + if (ModemPreset != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast) { + output.WriteRawTag(56); + output.WriteEnum((int) ModemPreset); + } + if (HasDefaultChannel != false) { + output.WriteRawTag(64); + output.WriteBool(HasDefaultChannel); + } + if (LatitudeI != 0) { + output.WriteRawTag(77); + output.WriteSFixed32(LatitudeI); + } + if (LongitudeI != 0) { + output.WriteRawTag(85); + output.WriteSFixed32(LongitudeI); + } + if (Altitude != 0) { + output.WriteRawTag(88); + output.WriteInt32(Altitude); + } + if (PositionPrecision != 0) { + output.WriteRawTag(96); + output.WriteUInt32(PositionPrecision); + } + if (NumOnlineLocalNodes != 0) { + output.WriteRawTag(104); + output.WriteUInt32(NumOnlineLocalNodes); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (LongName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(LongName); + } + if (ShortName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ShortName); + } + if (Role != global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Role); + } + if (HwModel != global::Meshtastic.Protobufs.HardwareModel.Unset) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) HwModel); + } + if (FirmwareVersion.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(FirmwareVersion); + } + if (Region != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Region); + } + if (ModemPreset != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ModemPreset); + } + if (HasDefaultChannel != false) { + size += 1 + 1; + } + if (LatitudeI != 0) { + size += 1 + 4; + } + if (LongitudeI != 0) { + size += 1 + 4; + } + if (Altitude != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Altitude); + } + if (PositionPrecision != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PositionPrecision); + } + if (NumOnlineLocalNodes != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(NumOnlineLocalNodes); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(MapReport other) { + if (other == null) { + return; + } + if (other.LongName.Length != 0) { + LongName = other.LongName; + } + if (other.ShortName.Length != 0) { + ShortName = other.ShortName; + } + if (other.Role != global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role.Client) { + Role = other.Role; + } + if (other.HwModel != global::Meshtastic.Protobufs.HardwareModel.Unset) { + HwModel = other.HwModel; + } + if (other.FirmwareVersion.Length != 0) { + FirmwareVersion = other.FirmwareVersion; + } + if (other.Region != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode.Unset) { + Region = other.Region; + } + if (other.ModemPreset != global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset.LongFast) { + ModemPreset = other.ModemPreset; + } + if (other.HasDefaultChannel != false) { + HasDefaultChannel = other.HasDefaultChannel; + } + if (other.LatitudeI != 0) { + LatitudeI = other.LatitudeI; + } + if (other.LongitudeI != 0) { + LongitudeI = other.LongitudeI; + } + if (other.Altitude != 0) { + Altitude = other.Altitude; + } + if (other.PositionPrecision != 0) { + PositionPrecision = other.PositionPrecision; + } + if (other.NumOnlineLocalNodes != 0) { + NumOnlineLocalNodes = other.NumOnlineLocalNodes; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + LongName = input.ReadString(); + break; + } + case 18: { + ShortName = input.ReadString(); + break; + } + case 24: { + Role = (global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role) input.ReadEnum(); + break; + } + case 32: { + HwModel = (global::Meshtastic.Protobufs.HardwareModel) input.ReadEnum(); + break; + } + case 42: { + FirmwareVersion = input.ReadString(); + break; + } + case 48: { + Region = (global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode) input.ReadEnum(); + break; + } + case 56: { + ModemPreset = (global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset) input.ReadEnum(); + break; + } + case 64: { + HasDefaultChannel = input.ReadBool(); + break; + } + case 77: { + LatitudeI = input.ReadSFixed32(); + break; + } + case 85: { + LongitudeI = input.ReadSFixed32(); + break; + } + case 88: { + Altitude = input.ReadInt32(); + break; + } + case 96: { + PositionPrecision = input.ReadUInt32(); + break; + } + case 104: { + NumOnlineLocalNodes = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + LongName = input.ReadString(); + break; + } + case 18: { + ShortName = input.ReadString(); + break; + } + case 24: { + Role = (global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role) input.ReadEnum(); + break; + } + case 32: { + HwModel = (global::Meshtastic.Protobufs.HardwareModel) input.ReadEnum(); + break; + } + case 42: { + FirmwareVersion = input.ReadString(); + break; + } + case 48: { + Region = (global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode) input.ReadEnum(); + break; + } + case 56: { + ModemPreset = (global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset) input.ReadEnum(); + break; + } + case 64: { + HasDefaultChannel = input.ReadBool(); + break; + } + case 77: { + LatitudeI = input.ReadSFixed32(); + break; + } + case 85: { + LongitudeI = input.ReadSFixed32(); + break; + } + case 88: { + Altitude = input.ReadInt32(); + break; + } + case 96: { + PositionPrecision = input.ReadUInt32(); + break; + } + case 104: { + NumOnlineLocalNodes = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Meshtastic/Generated/Portnums.cs b/Meshtastic/Generated/Portnums.cs index b9bb800..adffdbe 100644 --- a/Meshtastic/Generated/Portnums.cs +++ b/Meshtastic/Generated/Portnums.cs @@ -24,7 +24,7 @@ public static partial class PortnumsReflection { static PortnumsReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKvkDCgdQ", + "ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKo0ECgdQ", "b3J0TnVtEg8KC1VOS05PV05fQVBQEAASFAoQVEVYVF9NRVNTQUdFX0FQUBAB", "EhcKE1JFTU9URV9IQVJEV0FSRV9BUFAQAhIQCgxQT1NJVElPTl9BUFAQAxIQ", "CgxOT0RFSU5GT19BUFAQBBIPCgtST1VUSU5HX0FQUBAFEg0KCUFETUlOX0FQ", @@ -35,10 +35,10 @@ static PortnumsReflection() { "UkRfQVBQEEESEgoOUkFOR0VfVEVTVF9BUFAQQhIRCg1URUxFTUVUUllfQVBQ", "EEMSCwoHWlBTX0FQUBBEEhEKDVNJTVVMQVRPUl9BUFAQRRISCg5UUkFDRVJP", "VVRFX0FQUBBGEhQKEE5FSUdIQk9SSU5GT19BUFAQRxIPCgtBVEFLX1BMVUdJ", - "ThBIEhAKC1BSSVZBVEVfQVBQEIACEhMKDkFUQUtfRk9SV0FSREVSEIECEggK", - "A01BWBD/A0JdChNjb20uZ2Vla3N2aWxsZS5tZXNoQghQb3J0bnVtc1oiZ2l0", - "aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMu", - "UHJvdG9idWZzugIAYgZwcm90bzM=")); + "ThBIEhIKDk1BUF9SRVBPUlRfQVBQEEkSEAoLUFJJVkFURV9BUFAQgAISEwoO", + "QVRBS19GT1JXQVJERVIQgQISCAoDTUFYEP8DQl0KE2NvbS5nZWVrc3ZpbGxl", + "Lm1lc2hCCFBvcnRudW1zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2Vu", + "ZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.PortNum), }, null, null)); @@ -233,6 +233,11 @@ public enum PortNum { [pbr::OriginalName("ATAK_PLUGIN")] AtakPlugin = 72, /// /// + /// Provides unencrypted information about a node for consumption by a map via MQTT + /// + [pbr::OriginalName("MAP_REPORT_APP")] MapReportApp = 73, + /// + /// /// Private applications should use portnums >= 256. /// To simplify initial development and testing you can use "PRIVATE_APP" /// in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh)) diff --git a/protobufs b/protobufs index 5a97acb..53e1c4f 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 5a97acb17543a10e114675a205e3274a83e721af +Subproject commit 53e1c4f6bda68c11d12d17ba650f8792fc8e2325 diff --git a/scripts/regen-protos.bat b/scripts/regen-protos.bat index b6cdcb3..4a4d8c7 100644 --- a/scripts/regen-protos.bat +++ b/scripts/regen-protos.bat @@ -1 +1,9 @@ -%USERPROFILE%/.nuget/packages/google.protobuf.tools/3.21.12/tools/windows_x64/protoc.exe -I=protobufs --csharp_out=./Meshtastic/Generated --csharp_opt=base_namespace=Meshtastic.Protobufs ./protobufs/meshtastic/*.proto \ No newline at end of file +cd ./protobufs/meshtastic/ +rename deviceonly.proto deviceonly.ignoreproto +cd ../../ + +%USERPROFILE%/.nuget/packages/google.protobuf.tools/3.21.12/tools/windows_x64/protoc.exe -I=protobufs --csharp_out=./Meshtastic/Generated --csharp_opt=base_namespace=Meshtastic.Protobufs ./protobufs/meshtastic/*.proto + +cd ./protobufs/meshtastic/ +rename deviceonly.ignoreproto deviceonly.proto +cd ../../