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/Meshtastic.Cli.csproj b/Meshtastic.Cli/Meshtastic.Cli.csproj index 7d4fcf8..ba2de6c 100644 --- a/Meshtastic.Cli/Meshtastic.Cli.csproj +++ b/Meshtastic.Cli/Meshtastic.Cli.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 Meshtastic.Cli enable enable @@ -34,20 +34,20 @@ - - - - - - - + + + + + + + - - + + - - + + 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.Test/Meshtastic.Test.csproj b/Meshtastic.Test/Meshtastic.Test.csproj index 362458e..1abe8e5 100644 --- a/Meshtastic.Test/Meshtastic.Test.csproj +++ b/Meshtastic.Test/Meshtastic.Test.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 enable enable @@ -15,17 +15,17 @@ - + - + - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive 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 7b43c7c..be5249c 100644 --- a/Meshtastic/Generated/Admin.cs +++ b/Meshtastic/Generated/Admin.cs @@ -26,66 +26,69 @@ static AdminReflection() { string.Concat( "ChZtZXNodGFzdGljL2FkbWluLnByb3RvEgptZXNodGFzdGljGhhtZXNodGFz", "dGljL2NoYW5uZWwucHJvdG8aF21lc2h0YXN0aWMvY29uZmlnLnByb3RvGiJt", - "ZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvGhttZXNodGFzdGlj", - "L2RldmljZW9ubHkucHJvdG8aFW1lc2h0YXN0aWMvbWVzaC5wcm90bxoebWVz", - "aHRhc3RpYy9tb2R1bGVfY29uZmlnLnByb3RvIp0QCgxBZG1pbk1lc3NhZ2US", - "HQoTZ2V0X2NoYW5uZWxfcmVxdWVzdBgBIAEoDUgAEjMKFGdldF9jaGFubmVs", - "X3Jlc3BvbnNlGAIgASgLMhMubWVzaHRhc3RpYy5DaGFubmVsSAASGwoRZ2V0", - "X293bmVyX3JlcXVlc3QYAyABKAhIABIuChJnZXRfb3duZXJfcmVzcG9uc2UY", - "BCABKAsyEC5tZXNodGFzdGljLlVzZXJIABJBChJnZXRfY29uZmlnX3JlcXVl", - "c3QYBSABKA4yIy5tZXNodGFzdGljLkFkbWluTWVzc2FnZS5Db25maWdUeXBl", - "SAASMQoTZ2V0X2NvbmZpZ19yZXNwb25zZRgGIAEoCzISLm1lc2h0YXN0aWMu", - "Q29uZmlnSAASTgoZZ2V0X21vZHVsZV9jb25maWdfcmVxdWVzdBgHIAEoDjIp", - "Lm1lc2h0YXN0aWMuQWRtaW5NZXNzYWdlLk1vZHVsZUNvbmZpZ1R5cGVIABI+", - "ChpnZXRfbW9kdWxlX2NvbmZpZ19yZXNwb25zZRgIIAEoCzIYLm1lc2h0YXN0", - "aWMuTW9kdWxlQ29uZmlnSAASNAoqZ2V0X2Nhbm5lZF9tZXNzYWdlX21vZHVs", - "ZV9tZXNzYWdlc19yZXF1ZXN0GAogASgISAASNQorZ2V0X2Nhbm5lZF9tZXNz", - "YWdlX21vZHVsZV9tZXNzYWdlc19yZXNwb25zZRgLIAEoCUgAEiUKG2dldF9k", - "ZXZpY2VfbWV0YWRhdGFfcmVxdWVzdBgMIAEoCEgAEkIKHGdldF9kZXZpY2Vf", - "bWV0YWRhdGFfcmVzcG9uc2UYDSABKAsyGi5tZXNodGFzdGljLkRldmljZU1l", - "dGFkYXRhSAASHgoUZ2V0X3Jpbmd0b25lX3JlcXVlc3QYDiABKAhIABIfChVn", - "ZXRfcmluZ3RvbmVfcmVzcG9uc2UYDyABKAlIABIuCiRnZXRfZGV2aWNlX2Nv", - "bm5lY3Rpb25fc3RhdHVzX3JlcXVlc3QYECABKAhIABJTCiVnZXRfZGV2aWNl", - "X2Nvbm5lY3Rpb25fc3RhdHVzX3Jlc3BvbnNlGBEgASgLMiIubWVzaHRhc3Rp", - "Yy5EZXZpY2VDb25uZWN0aW9uU3RhdHVzSAASMQoMc2V0X2hhbV9tb2RlGBIg", - "ASgLMhkubWVzaHRhc3RpYy5IYW1QYXJhbWV0ZXJzSAASLwolZ2V0X25vZGVf", - "cmVtb3RlX2hhcmR3YXJlX3BpbnNfcmVxdWVzdBgTIAEoCEgAElwKJmdldF9u", - "b2RlX3JlbW90ZV9oYXJkd2FyZV9waW5zX3Jlc3BvbnNlGBQgASgLMioubWVz", - "aHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdhcmVQaW5zUmVzcG9uc2VIABIgChZl", - "bnRlcl9kZnVfbW9kZV9yZXF1ZXN0GBUgASgISAASJQoJc2V0X293bmVyGCAg", - "ASgLMhAubWVzaHRhc3RpYy5Vc2VySAASKgoLc2V0X2NoYW5uZWwYISABKAsy", - "Ey5tZXNodGFzdGljLkNoYW5uZWxIABIoCgpzZXRfY29uZmlnGCIgASgLMhIu", - "bWVzaHRhc3RpYy5Db25maWdIABI1ChFzZXRfbW9kdWxlX2NvbmZpZxgjIAEo", - "CzIYLm1lc2h0YXN0aWMuTW9kdWxlQ29uZmlnSAASLAoic2V0X2Nhbm5lZF9t", - "ZXNzYWdlX21vZHVsZV9tZXNzYWdlcxgkIAEoCUgAEh4KFHNldF9yaW5ndG9u", - "ZV9tZXNzYWdlGCUgASgJSAASGwoRcmVtb3ZlX2J5X25vZGVudW0YJiABKA1I", - "ABIdChNiZWdpbl9lZGl0X3NldHRpbmdzGEAgASgISAASHgoUY29tbWl0X2Vk", - "aXRfc2V0dGluZ3MYQSABKAhIABIcChJyZWJvb3Rfb3RhX3NlY29uZHMYXyAB", - "KAVIABIYCg5leGl0X3NpbXVsYXRvchhgIAEoCEgAEhgKDnJlYm9vdF9zZWNv", - "bmRzGGEgASgFSAASGgoQc2h1dGRvd25fc2Vjb25kcxhiIAEoBUgAEhcKDWZh", - "Y3RvcnlfcmVzZXQYYyABKAVIABIWCgxub2RlZGJfcmVzZXQYZCABKAVIACKV", - "AQoKQ29uZmlnVHlwZRIRCg1ERVZJQ0VfQ09ORklHEAASEwoPUE9TSVRJT05f", - "Q09ORklHEAESEAoMUE9XRVJfQ09ORklHEAISEgoOTkVUV09SS19DT05GSUcQ", - "AxISCg5ESVNQTEFZX0NPTkZJRxAEEg8KC0xPUkFfQ09ORklHEAUSFAoQQkxV", - "RVRPT1RIX0NPTkZJRxAGIrsCChBNb2R1bGVDb25maWdUeXBlEg8KC01RVFRf", - "Q09ORklHEAASEQoNU0VSSUFMX0NPTkZJRxABEhMKD0VYVE5PVElGX0NPTkZJ", - "RxACEhcKE1NUT1JFRk9SV0FSRF9DT05GSUcQAxIUChBSQU5HRVRFU1RfQ09O", - "RklHEAQSFAoQVEVMRU1FVFJZX0NPTkZJRxAFEhQKEENBTk5FRE1TR19DT05G", - "SUcQBhIQCgxBVURJT19DT05GSUcQBxIZChVSRU1PVEVIQVJEV0FSRV9DT05G", - "SUcQCBIXChNORUlHSEJPUklORk9fQ09ORklHEAkSGgoWQU1CSUVOVExJR0hU", - "SU5HX0NPTkZJRxAKEhoKFkRFVEVDVElPTlNFTlNPUl9DT05GSUcQCxIVChFQ", - "QVhDT1VOVEVSX0NPTkZJRxAMQhEKD3BheWxvYWRfdmFyaWFudCJbCg1IYW1Q", - "YXJhbWV0ZXJzEhEKCWNhbGxfc2lnbhgBIAEoCRIQCgh0eF9wb3dlchgCIAEo", - "BRIRCglmcmVxdWVuY3kYAyABKAISEgoKc2hvcnRfbmFtZRgEIAEoCSJmCh5O", - "b2RlUmVtb3RlSGFyZHdhcmVQaW5zUmVzcG9uc2USRAoZbm9kZV9yZW1vdGVf", - "aGFyZHdhcmVfcGlucxgBIAMoCzIhLm1lc2h0YXN0aWMuTm9kZVJlbW90ZUhh", - "cmR3YXJlUGluQmAKE2NvbS5nZWVrc3ZpbGxlLm1lc2hCC0FkbWluUHJvdG9z", - "WiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRh", - "c3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); + "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", "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) })); @@ -195,6 +198,9 @@ public AdminMessage(AdminMessage other) : this() { case PayloadVariantOneofCase.EnterDfuModeRequest: EnterDfuModeRequest = other.EnterDfuModeRequest; break; + case PayloadVariantOneofCase.DeleteFileRequest: + DeleteFileRequest = other.DeleteFileRequest; + break; case PayloadVariantOneofCase.SetOwner: SetOwner = other.SetOwner.Clone(); break; @@ -216,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; @@ -573,6 +591,22 @@ public bool EnterDfuModeRequest { } } + /// Field number for the "delete_file_request" field. + public const int DeleteFileRequestFieldNumber = 22; + /// + /// + /// Delete the file by the specified path from the device + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DeleteFileRequest { + get { return payloadVariantCase_ == PayloadVariantOneofCase.DeleteFileRequest ? (string) payloadVariant_ : ""; } + set { + payloadVariant_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + payloadVariantCase_ = PayloadVariantOneofCase.DeleteFileRequest; + } + } + /// Field number for the "set_owner" field. public const int SetOwnerFieldNumber = 32; /// @@ -689,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; /// @@ -844,6 +942,7 @@ public enum PayloadVariantOneofCase { GetNodeRemoteHardwarePinsRequest = 19, GetNodeRemoteHardwarePinsResponse = 20, EnterDfuModeRequest = 21, + DeleteFileRequest = 22, SetOwner = 32, SetChannel = 33, SetConfig = 34, @@ -851,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, @@ -909,6 +1012,7 @@ public bool Equals(AdminMessage other) { if (GetNodeRemoteHardwarePinsRequest != other.GetNodeRemoteHardwarePinsRequest) return false; if (!object.Equals(GetNodeRemoteHardwarePinsResponse, other.GetNodeRemoteHardwarePinsResponse)) return false; if (EnterDfuModeRequest != other.EnterDfuModeRequest) return false; + if (DeleteFileRequest != other.DeleteFileRequest) return false; if (!object.Equals(SetOwner, other.SetOwner)) return false; if (!object.Equals(SetChannel, other.SetChannel)) return false; if (!object.Equals(SetConfig, other.SetConfig)) return false; @@ -916,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; @@ -952,6 +1060,7 @@ public override int GetHashCode() { if (payloadVariantCase_ == PayloadVariantOneofCase.GetNodeRemoteHardwarePinsRequest) hash ^= GetNodeRemoteHardwarePinsRequest.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.GetNodeRemoteHardwarePinsResponse) hash ^= GetNodeRemoteHardwarePinsResponse.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.EnterDfuModeRequest) hash ^= EnterDfuModeRequest.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.DeleteFileRequest) hash ^= DeleteFileRequest.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) hash ^= SetOwner.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetChannel) hash ^= SetChannel.GetHashCode(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetConfig) hash ^= SetConfig.GetHashCode(); @@ -959,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(); @@ -1066,6 +1179,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(168, 1); output.WriteBool(EnterDfuModeRequest); } + if (payloadVariantCase_ == PayloadVariantOneofCase.DeleteFileRequest) { + output.WriteRawTag(178, 1); + output.WriteString(DeleteFileRequest); + } if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) { output.WriteRawTag(130, 2); output.WriteMessage(SetOwner); @@ -1094,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); @@ -1216,6 +1349,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(168, 1); output.WriteBool(EnterDfuModeRequest); } + if (payloadVariantCase_ == PayloadVariantOneofCase.DeleteFileRequest) { + output.WriteRawTag(178, 1); + output.WriteString(DeleteFileRequest); + } if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) { output.WriteRawTag(130, 2); output.WriteMessage(SetOwner); @@ -1244,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); @@ -1346,6 +1499,9 @@ public int CalculateSize() { if (payloadVariantCase_ == PayloadVariantOneofCase.EnterDfuModeRequest) { size += 2 + 1; } + if (payloadVariantCase_ == PayloadVariantOneofCase.DeleteFileRequest) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(DeleteFileRequest); + } if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetOwner); } @@ -1367,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; } @@ -1488,6 +1656,9 @@ public void MergeFrom(AdminMessage other) { case PayloadVariantOneofCase.EnterDfuModeRequest: EnterDfuModeRequest = other.EnterDfuModeRequest; break; + case PayloadVariantOneofCase.DeleteFileRequest: + DeleteFileRequest = other.DeleteFileRequest; + break; case PayloadVariantOneofCase.SetOwner: if (SetOwner == null) { SetOwner = new global::Meshtastic.Protobufs.User(); @@ -1521,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; @@ -1684,6 +1870,10 @@ public void MergeFrom(pb::CodedInputStream input) { EnterDfuModeRequest = input.ReadBool(); break; } + case 178: { + DeleteFileRequest = input.ReadString(); + break; + } case 258: { global::Meshtastic.Protobufs.User subBuilder = new global::Meshtastic.Protobufs.User(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) { @@ -1732,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; @@ -1901,6 +2112,10 @@ public void MergeFrom(pb::CodedInputStream input) { EnterDfuModeRequest = input.ReadBool(); break; } + case 178: { + DeleteFileRequest = input.ReadString(); + break; + } case 258: { global::Meshtastic.Protobufs.User subBuilder = new global::Meshtastic.Protobufs.User(); if (payloadVariantCase_ == PayloadVariantOneofCase.SetOwner) { @@ -1949,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/Atak.cs b/Meshtastic/Generated/Atak.cs new file mode 100644 index 0000000..6595373 --- /dev/null +++ b/Meshtastic/Generated/Atak.cs @@ -0,0 +1,1980 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: meshtastic/atak.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/atak.proto + public static partial class AtakReflection { + + #region Descriptor + /// File descriptor for meshtastic/atak.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static AtakReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChVtZXNodGFzdGljL2F0YWsucHJvdG8SCm1lc2h0YXN0aWMi5gEKCVRBS1Bh", + "Y2tldBIVCg1pc19jb21wcmVzc2VkGAEgASgIEiQKB2NvbnRhY3QYAiABKAsy", + "Ey5tZXNodGFzdGljLkNvbnRhY3QSIAoFZ3JvdXAYAyABKAsyES5tZXNodGFz", + "dGljLkdyb3VwEiIKBnN0YXR1cxgEIAEoCzISLm1lc2h0YXN0aWMuU3RhdHVz", + "Eh4KA3BsaRgFIAEoCzIPLm1lc2h0YXN0aWMuUExJSAASIwoEY2hhdBgGIAEo", + "CzITLm1lc2h0YXN0aWMuR2VvQ2hhdEgAQhEKD3BheWxvYWRfdmFyaWFudCIy", + "CgdHZW9DaGF0Eg8KB21lc3NhZ2UYASABKAkSDwoCdG8YAiABKAlIAIgBAUIF", + "CgNfdG8iTQoFR3JvdXASJAoEcm9sZRgBIAEoDjIWLm1lc2h0YXN0aWMuTWVt", + "YmVyUm9sZRIeCgR0ZWFtGAIgASgOMhAubWVzaHRhc3RpYy5UZWFtIhkKBlN0", + "YXR1cxIPCgdiYXR0ZXJ5GAEgASgNIjQKB0NvbnRhY3QSEAoIY2FsbHNpZ24Y", + "ASABKAkSFwoPZGV2aWNlX2NhbGxzaWduGAIgASgJIl8KA1BMSRISCgpsYXRp", + "dHVkZV9pGAEgASgPEhMKC2xvbmdpdHVkZV9pGAIgASgPEhAKCGFsdGl0dWRl", + "GAMgASgFEg0KBXNwZWVkGAQgASgNEg4KBmNvdXJzZRgFIAEoDSrAAQoEVGVh", + "bRIUChBVbnNwZWNpZmVkX0NvbG9yEAASCQoFV2hpdGUQARIKCgZZZWxsb3cQ", + "AhIKCgZPcmFuZ2UQAxILCgdNYWdlbnRhEAQSBwoDUmVkEAUSCgoGTWFyb29u", + "EAYSCgoGUHVycGxlEAcSDQoJRGFya19CbHVlEAgSCAoEQmx1ZRAJEggKBEN5", + "YW4QChIICgRUZWFsEAsSCQoFR3JlZW4QDBIOCgpEYXJrX0dyZWVuEA0SCQoF", + "QnJvd24QDip/CgpNZW1iZXJSb2xlEg4KClVuc3BlY2lmZWQQABIOCgpUZWFt", + "TWVtYmVyEAESDAoIVGVhbUxlYWQQAhIGCgJIURADEgoKBlNuaXBlchAEEgkK", + "BU1lZGljEAUSEwoPRm9yd2FyZE9ic2VydmVyEAYSBwoDUlRPEAcSBgoCSzkQ", + "CEJfChNjb20uZ2Vla3N2aWxsZS5tZXNoQgpBVEFLUHJvdG9zWiJnaXRodWIu", + "Y29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90", + "b2J1ZnO6AgBiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.Team), typeof(global::Meshtastic.Protobufs.MemberRole), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.TAKPacket), global::Meshtastic.Protobufs.TAKPacket.Parser, new[]{ "IsCompressed", "Contact", "Group", "Status", "Pli", "Chat" }, new[]{ "PayloadVariant" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.GeoChat), global::Meshtastic.Protobufs.GeoChat.Parser, new[]{ "Message", "To" }, new[]{ "To" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Group), global::Meshtastic.Protobufs.Group.Parser, new[]{ "Role", "Team" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Status), global::Meshtastic.Protobufs.Status.Parser, new[]{ "Battery" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Contact), global::Meshtastic.Protobufs.Contact.Parser, new[]{ "Callsign", "DeviceCallsign" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.PLI), global::Meshtastic.Protobufs.PLI.Parser, new[]{ "LatitudeI", "LongitudeI", "Altitude", "Speed", "Course" }, null, null, null, null) + })); + } + #endregion + + } + #region Enums + public enum Team { + /// + /// + /// Unspecifed + /// + [pbr::OriginalName("Unspecifed_Color")] UnspecifedColor = 0, + /// + /// + /// White + /// + [pbr::OriginalName("White")] White = 1, + /// + /// + /// Yellow + /// + [pbr::OriginalName("Yellow")] Yellow = 2, + /// + /// + /// Orange + /// + [pbr::OriginalName("Orange")] Orange = 3, + /// + /// + /// Magenta + /// + [pbr::OriginalName("Magenta")] Magenta = 4, + /// + /// + /// Red + /// + [pbr::OriginalName("Red")] Red = 5, + /// + /// + /// Maroon + /// + [pbr::OriginalName("Maroon")] Maroon = 6, + /// + /// + /// Purple + /// + [pbr::OriginalName("Purple")] Purple = 7, + /// + /// + /// Dark Blue + /// + [pbr::OriginalName("Dark_Blue")] DarkBlue = 8, + /// + /// + /// Blue + /// + [pbr::OriginalName("Blue")] Blue = 9, + /// + /// + /// Cyan + /// + [pbr::OriginalName("Cyan")] Cyan = 10, + /// + /// + /// Teal + /// + [pbr::OriginalName("Teal")] Teal = 11, + /// + /// + /// Green + /// + [pbr::OriginalName("Green")] Green = 12, + /// + /// + /// Dark Green + /// + [pbr::OriginalName("Dark_Green")] DarkGreen = 13, + /// + /// + /// Brown + /// + [pbr::OriginalName("Brown")] Brown = 14, + } + + /// + /// + /// Role of the group member + /// + public enum MemberRole { + /// + /// + /// Unspecifed + /// + [pbr::OriginalName("Unspecifed")] Unspecifed = 0, + /// + /// + /// Team Member + /// + [pbr::OriginalName("TeamMember")] TeamMember = 1, + /// + /// + /// Team Lead + /// + [pbr::OriginalName("TeamLead")] TeamLead = 2, + /// + /// + /// Headquarters + /// + [pbr::OriginalName("HQ")] Hq = 3, + /// + /// + /// Airsoft enthusiast + /// + [pbr::OriginalName("Sniper")] Sniper = 4, + /// + /// + /// Medic + /// + [pbr::OriginalName("Medic")] Medic = 5, + /// + /// + /// ForwardObserver + /// + [pbr::OriginalName("ForwardObserver")] ForwardObserver = 6, + /// + /// + /// Radio Telephone Operator + /// + [pbr::OriginalName("RTO")] Rto = 7, + /// + /// + /// Doggo + /// + [pbr::OriginalName("K9")] K9 = 8, + } + + #endregion + + #region Messages + /// + /// + /// Packets for the official ATAK Plugin + /// + public sealed partial class TAKPacket : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TAKPacket()); + 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.AtakReflection.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 TAKPacket() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TAKPacket(TAKPacket other) : this() { + isCompressed_ = other.isCompressed_; + contact_ = other.contact_ != null ? other.contact_.Clone() : null; + group_ = other.group_ != null ? other.group_.Clone() : null; + status_ = other.status_ != null ? other.status_.Clone() : null; + switch (other.PayloadVariantCase) { + case PayloadVariantOneofCase.Pli: + Pli = other.Pli.Clone(); + break; + case PayloadVariantOneofCase.Chat: + Chat = other.Chat.Clone(); + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TAKPacket Clone() { + return new TAKPacket(this); + } + + /// Field number for the "is_compressed" field. + public const int IsCompressedFieldNumber = 1; + private bool isCompressed_; + /// + /// + /// Are the payloads strings compressed for LoRA transport? + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsCompressed { + get { return isCompressed_; } + set { + isCompressed_ = value; + } + } + + /// Field number for the "contact" field. + public const int ContactFieldNumber = 2; + private global::Meshtastic.Protobufs.Contact contact_; + /// + /// + /// The contact / callsign for ATAK user + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Contact Contact { + get { return contact_; } + set { + contact_ = value; + } + } + + /// Field number for the "group" field. + public const int GroupFieldNumber = 3; + private global::Meshtastic.Protobufs.Group group_; + /// + /// + /// The group for ATAK user + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Group Group { + get { return group_; } + set { + group_ = value; + } + } + + /// Field number for the "status" field. + public const int StatusFieldNumber = 4; + private global::Meshtastic.Protobufs.Status status_; + /// + /// + /// The status of the ATAK EUD + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Status Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "pli" field. + public const int PliFieldNumber = 5; + /// + /// + /// TAK position report + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.PLI Pli { + get { return payloadVariantCase_ == PayloadVariantOneofCase.Pli ? (global::Meshtastic.Protobufs.PLI) payloadVariant_ : null; } + set { + payloadVariant_ = value; + payloadVariantCase_ = value == null ? PayloadVariantOneofCase.None : PayloadVariantOneofCase.Pli; + } + } + + /// Field number for the "chat" field. + public const int ChatFieldNumber = 6; + /// + /// + /// ATAK GeoChat message + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.GeoChat Chat { + get { return payloadVariantCase_ == PayloadVariantOneofCase.Chat ? (global::Meshtastic.Protobufs.GeoChat) payloadVariant_ : null; } + set { + payloadVariant_ = value; + payloadVariantCase_ = value == null ? PayloadVariantOneofCase.None : PayloadVariantOneofCase.Chat; + } + } + + private object payloadVariant_; + /// Enum of possible cases for the "payload_variant" oneof. + public enum PayloadVariantOneofCase { + None = 0, + Pli = 5, + Chat = 6, + } + private PayloadVariantOneofCase payloadVariantCase_ = PayloadVariantOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PayloadVariantOneofCase PayloadVariantCase { + get { return payloadVariantCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPayloadVariant() { + payloadVariantCase_ = PayloadVariantOneofCase.None; + payloadVariant_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TAKPacket); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TAKPacket other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (IsCompressed != other.IsCompressed) return false; + if (!object.Equals(Contact, other.Contact)) return false; + if (!object.Equals(Group, other.Group)) return false; + if (!object.Equals(Status, other.Status)) return false; + if (!object.Equals(Pli, other.Pli)) return false; + if (!object.Equals(Chat, other.Chat)) return false; + if (PayloadVariantCase != other.PayloadVariantCase) 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 (IsCompressed != false) hash ^= IsCompressed.GetHashCode(); + if (contact_ != null) hash ^= Contact.GetHashCode(); + if (group_ != null) hash ^= Group.GetHashCode(); + if (status_ != null) hash ^= Status.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) hash ^= Pli.GetHashCode(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) hash ^= Chat.GetHashCode(); + hash ^= (int) payloadVariantCase_; + 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 (IsCompressed != false) { + output.WriteRawTag(8); + output.WriteBool(IsCompressed); + } + if (contact_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Contact); + } + if (group_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Group); + } + if (status_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Status); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) { + output.WriteRawTag(42); + output.WriteMessage(Pli); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) { + output.WriteRawTag(50); + output.WriteMessage(Chat); + } + 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 (IsCompressed != false) { + output.WriteRawTag(8); + output.WriteBool(IsCompressed); + } + if (contact_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Contact); + } + if (group_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Group); + } + if (status_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Status); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) { + output.WriteRawTag(42); + output.WriteMessage(Pli); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) { + output.WriteRawTag(50); + output.WriteMessage(Chat); + } + 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 (IsCompressed != false) { + size += 1 + 1; + } + if (contact_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Contact); + } + if (group_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Group); + } + if (status_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Status); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Pli); + } + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Chat); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TAKPacket other) { + if (other == null) { + return; + } + if (other.IsCompressed != false) { + IsCompressed = other.IsCompressed; + } + if (other.contact_ != null) { + if (contact_ == null) { + Contact = new global::Meshtastic.Protobufs.Contact(); + } + Contact.MergeFrom(other.Contact); + } + if (other.group_ != null) { + if (group_ == null) { + Group = new global::Meshtastic.Protobufs.Group(); + } + Group.MergeFrom(other.Group); + } + if (other.status_ != null) { + if (status_ == null) { + Status = new global::Meshtastic.Protobufs.Status(); + } + Status.MergeFrom(other.Status); + } + switch (other.PayloadVariantCase) { + case PayloadVariantOneofCase.Pli: + if (Pli == null) { + Pli = new global::Meshtastic.Protobufs.PLI(); + } + Pli.MergeFrom(other.Pli); + break; + case PayloadVariantOneofCase.Chat: + if (Chat == null) { + Chat = new global::Meshtastic.Protobufs.GeoChat(); + } + Chat.MergeFrom(other.Chat); + break; + } + + _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: { + IsCompressed = input.ReadBool(); + break; + } + case 18: { + if (contact_ == null) { + Contact = new global::Meshtastic.Protobufs.Contact(); + } + input.ReadMessage(Contact); + break; + } + case 26: { + if (group_ == null) { + Group = new global::Meshtastic.Protobufs.Group(); + } + input.ReadMessage(Group); + break; + } + case 34: { + if (status_ == null) { + Status = new global::Meshtastic.Protobufs.Status(); + } + input.ReadMessage(Status); + break; + } + case 42: { + global::Meshtastic.Protobufs.PLI subBuilder = new global::Meshtastic.Protobufs.PLI(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) { + subBuilder.MergeFrom(Pli); + } + input.ReadMessage(subBuilder); + Pli = subBuilder; + break; + } + case 50: { + global::Meshtastic.Protobufs.GeoChat subBuilder = new global::Meshtastic.Protobufs.GeoChat(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) { + subBuilder.MergeFrom(Chat); + } + input.ReadMessage(subBuilder); + Chat = subBuilder; + 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: { + IsCompressed = input.ReadBool(); + break; + } + case 18: { + if (contact_ == null) { + Contact = new global::Meshtastic.Protobufs.Contact(); + } + input.ReadMessage(Contact); + break; + } + case 26: { + if (group_ == null) { + Group = new global::Meshtastic.Protobufs.Group(); + } + input.ReadMessage(Group); + break; + } + case 34: { + if (status_ == null) { + Status = new global::Meshtastic.Protobufs.Status(); + } + input.ReadMessage(Status); + break; + } + case 42: { + global::Meshtastic.Protobufs.PLI subBuilder = new global::Meshtastic.Protobufs.PLI(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Pli) { + subBuilder.MergeFrom(Pli); + } + input.ReadMessage(subBuilder); + Pli = subBuilder; + break; + } + case 50: { + global::Meshtastic.Protobufs.GeoChat subBuilder = new global::Meshtastic.Protobufs.GeoChat(); + if (payloadVariantCase_ == PayloadVariantOneofCase.Chat) { + subBuilder.MergeFrom(Chat); + } + input.ReadMessage(subBuilder); + Chat = subBuilder; + break; + } + } + } + } + #endif + + } + + /// + /// + /// ATAK GeoChat message + /// + public sealed partial class GeoChat : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GeoChat()); + 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.AtakReflection.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 GeoChat() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GeoChat(GeoChat other) : this() { + message_ = other.message_; + to_ = other.to_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GeoChat Clone() { + return new GeoChat(this); + } + + /// Field number for the "message" field. + public const int MessageFieldNumber = 1; + private string message_ = ""; + /// + /// + /// The text message + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Message { + get { return message_; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "to" field. + public const int ToFieldNumber = 2; + private string to_; + /// + /// + /// Uid recipient of the message + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string To { + get { return to_ ?? ""; } + set { + to_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "to" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTo { + get { return to_ != null; } + } + /// Clears the value of the "to" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTo() { + to_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GeoChat); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GeoChat other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Message != other.Message) return false; + if (To != other.To) 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 (Message.Length != 0) hash ^= Message.GetHashCode(); + if (HasTo) hash ^= To.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 (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (HasTo) { + output.WriteRawTag(18); + output.WriteString(To); + } + 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 (Message.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Message); + } + if (HasTo) { + output.WriteRawTag(18); + output.WriteString(To); + } + 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 (Message.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (HasTo) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(To); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GeoChat other) { + if (other == null) { + return; + } + if (other.Message.Length != 0) { + Message = other.Message; + } + if (other.HasTo) { + To = other.To; + } + _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: { + Message = input.ReadString(); + break; + } + case 18: { + To = input.ReadString(); + 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: { + Message = input.ReadString(); + break; + } + case 18: { + To = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// + /// ATAK Group + /// <__group role='Team Member' name='Cyan'/> + /// + public sealed partial class Group : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Group()); + 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.AtakReflection.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 Group() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Group(Group other) : this() { + role_ = other.role_; + team_ = other.team_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Group Clone() { + return new Group(this); + } + + /// Field number for the "role" field. + public const int RoleFieldNumber = 1; + private global::Meshtastic.Protobufs.MemberRole role_ = global::Meshtastic.Protobufs.MemberRole.Unspecifed; + /// + /// + /// Role of the group member + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.MemberRole Role { + get { return role_; } + set { + role_ = value; + } + } + + /// Field number for the "team" field. + public const int TeamFieldNumber = 2; + private global::Meshtastic.Protobufs.Team team_ = global::Meshtastic.Protobufs.Team.UnspecifedColor; + /// + /// + /// Team (color) + /// Default Cyan + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Team Team { + get { return team_; } + set { + team_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Group); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Group other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Role != other.Role) return false; + if (Team != other.Team) 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 (Role != global::Meshtastic.Protobufs.MemberRole.Unspecifed) hash ^= Role.GetHashCode(); + if (Team != global::Meshtastic.Protobufs.Team.UnspecifedColor) hash ^= Team.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 (Role != global::Meshtastic.Protobufs.MemberRole.Unspecifed) { + output.WriteRawTag(8); + output.WriteEnum((int) Role); + } + if (Team != global::Meshtastic.Protobufs.Team.UnspecifedColor) { + output.WriteRawTag(16); + output.WriteEnum((int) Team); + } + 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 (Role != global::Meshtastic.Protobufs.MemberRole.Unspecifed) { + output.WriteRawTag(8); + output.WriteEnum((int) Role); + } + if (Team != global::Meshtastic.Protobufs.Team.UnspecifedColor) { + output.WriteRawTag(16); + output.WriteEnum((int) Team); + } + 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 (Role != global::Meshtastic.Protobufs.MemberRole.Unspecifed) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Role); + } + if (Team != global::Meshtastic.Protobufs.Team.UnspecifedColor) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Team); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Group other) { + if (other == null) { + return; + } + if (other.Role != global::Meshtastic.Protobufs.MemberRole.Unspecifed) { + Role = other.Role; + } + if (other.Team != global::Meshtastic.Protobufs.Team.UnspecifedColor) { + Team = other.Team; + } + _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: { + Role = (global::Meshtastic.Protobufs.MemberRole) input.ReadEnum(); + break; + } + case 16: { + Team = (global::Meshtastic.Protobufs.Team) 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 8: { + Role = (global::Meshtastic.Protobufs.MemberRole) input.ReadEnum(); + break; + } + case 16: { + Team = (global::Meshtastic.Protobufs.Team) input.ReadEnum(); + break; + } + } + } + } + #endif + + } + + /// + /// + /// ATAK EUD Status + /// <status battery='100' /> + /// + public sealed partial class Status : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Status()); + 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.AtakReflection.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 Status() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Status(Status other) : this() { + battery_ = other.battery_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Status Clone() { + return new Status(this); + } + + /// Field number for the "battery" field. + public const int BatteryFieldNumber = 1; + private uint battery_; + /// + /// + /// Battery level + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Battery { + get { return battery_; } + set { + battery_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Status); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Status other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Battery != other.Battery) 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 (Battery != 0) hash ^= Battery.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 (Battery != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Battery); + } + 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 (Battery != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Battery); + } + 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 (Battery != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Battery); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Status other) { + if (other == null) { + return; + } + if (other.Battery != 0) { + Battery = other.Battery; + } + _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: { + Battery = 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: { + Battery = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + /// + /// + /// ATAK Contact + /// <contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/> + /// + public sealed partial class Contact : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Contact()); + 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.AtakReflection.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 Contact() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Contact(Contact other) : this() { + callsign_ = other.callsign_; + deviceCallsign_ = other.deviceCallsign_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Contact Clone() { + return new Contact(this); + } + + /// Field number for the "callsign" field. + public const int CallsignFieldNumber = 1; + private string callsign_ = ""; + /// + /// + /// Callsign + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Callsign { + get { return callsign_; } + set { + callsign_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "device_callsign" field. + public const int DeviceCallsignFieldNumber = 2; + private string deviceCallsign_ = ""; + /// + /// + /// Device callsign + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DeviceCallsign { + get { return deviceCallsign_; } + set { + deviceCallsign_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Contact); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Contact other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Callsign != other.Callsign) return false; + if (DeviceCallsign != other.DeviceCallsign) 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 (Callsign.Length != 0) hash ^= Callsign.GetHashCode(); + if (DeviceCallsign.Length != 0) hash ^= DeviceCallsign.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 (Callsign.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Callsign); + } + if (DeviceCallsign.Length != 0) { + output.WriteRawTag(18); + output.WriteString(DeviceCallsign); + } + 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 (Callsign.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Callsign); + } + if (DeviceCallsign.Length != 0) { + output.WriteRawTag(18); + output.WriteString(DeviceCallsign); + } + 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 (Callsign.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Callsign); + } + if (DeviceCallsign.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(DeviceCallsign); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Contact other) { + if (other == null) { + return; + } + if (other.Callsign.Length != 0) { + Callsign = other.Callsign; + } + if (other.DeviceCallsign.Length != 0) { + DeviceCallsign = other.DeviceCallsign; + } + _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: { + Callsign = input.ReadString(); + break; + } + case 18: { + DeviceCallsign = input.ReadString(); + 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: { + Callsign = input.ReadString(); + break; + } + case 18: { + DeviceCallsign = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// + /// Position Location Information from ATAK + /// + public sealed partial class PLI : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PLI()); + 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.AtakReflection.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 PLI() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PLI(PLI other) : this() { + latitudeI_ = other.latitudeI_; + longitudeI_ = other.longitudeI_; + altitude_ = other.altitude_; + speed_ = other.speed_; + course_ = other.course_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PLI Clone() { + return new PLI(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_; + /// + /// + /// 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 LongitudeI { + get { return longitudeI_; } + set { + longitudeI_ = value; + } + } + + /// Field number for the "altitude" field. + public const int AltitudeFieldNumber = 3; + private int altitude_; + /// + /// + /// Altitude (ATAK prefers HAE) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Altitude { + get { return altitude_; } + set { + altitude_ = value; + } + } + + /// Field number for the "speed" field. + public const int SpeedFieldNumber = 4; + private uint speed_; + /// + /// + /// Speed + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Speed { + get { return speed_; } + set { + speed_ = value; + } + } + + /// Field number for the "course" field. + public const int CourseFieldNumber = 5; + private uint course_; + /// + /// + /// Course in degrees + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Course { + get { return course_; } + set { + course_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PLI); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PLI 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 (Speed != other.Speed) return false; + if (Course != other.Course) 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 (Speed != 0) hash ^= Speed.GetHashCode(); + if (Course != 0) hash ^= Course.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 (Speed != 0) { + output.WriteRawTag(32); + output.WriteUInt32(Speed); + } + if (Course != 0) { + output.WriteRawTag(40); + output.WriteUInt32(Course); + } + 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 (Speed != 0) { + output.WriteRawTag(32); + output.WriteUInt32(Speed); + } + if (Course != 0) { + output.WriteRawTag(40); + output.WriteUInt32(Course); + } + 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 (Speed != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Speed); + } + if (Course != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Course); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PLI 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.Speed != 0) { + Speed = other.Speed; + } + if (other.Course != 0) { + Course = other.Course; + } + _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 32: { + Speed = input.ReadUInt32(); + break; + } + case 40: { + Course = 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 13: { + LatitudeI = input.ReadSFixed32(); + break; + } + case 21: { + LongitudeI = input.ReadSFixed32(); + break; + } + case 24: { + Altitude = input.ReadInt32(); + break; + } + case 32: { + Speed = input.ReadUInt32(); + break; + } + case 40: { + Course = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Meshtastic/Generated/Channel.cs b/Meshtastic/Generated/Channel.cs index 98fd3b1..649a47c 100644 --- a/Meshtastic/Generated/Channel.cs +++ b/Meshtastic/Generated/Channel.cs @@ -24,20 +24,24 @@ public static partial class ChannelReflection { static ChannelReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChhtZXNodGFzdGljL2NoYW5uZWwucHJvdG8SCm1lc2h0YXN0aWMigwEKD0No", + "ChhtZXNodGFzdGljL2NoYW5uZWwucHJvdG8SCm1lc2h0YXN0aWMiuAEKD0No", "YW5uZWxTZXR0aW5ncxIXCgtjaGFubmVsX251bRgBIAEoDUICGAESCwoDcHNr", "GAIgASgMEgwKBG5hbWUYAyABKAkSCgoCaWQYBCABKAcSFgoOdXBsaW5rX2Vu", - "YWJsZWQYBSABKAgSGAoQZG93bmxpbmtfZW5hYmxlZBgGIAEoCCKhAQoHQ2hh", - "bm5lbBINCgVpbmRleBgBIAEoBRItCghzZXR0aW5ncxgCIAEoCzIbLm1lc2h0", - "YXN0aWMuQ2hhbm5lbFNldHRpbmdzEiYKBHJvbGUYAyABKA4yGC5tZXNodGFz", - "dGljLkNoYW5uZWwuUm9sZSIwCgRSb2xlEgwKCERJU0FCTEVEEAASCwoHUFJJ", - "TUFSWRABEg0KCVNFQ09OREFSWRACQmIKE2NvbS5nZWVrc3ZpbGxlLm1lc2hC", - "DUNoYW5uZWxQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5l", - "cmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z")); + "YWJsZWQYBSABKAgSGAoQZG93bmxpbmtfZW5hYmxlZBgGIAEoCBIzCg9tb2R1", + "bGVfc2V0dGluZ3MYByABKAsyGi5tZXNodGFzdGljLk1vZHVsZVNldHRpbmdz", + "IiwKDk1vZHVsZVNldHRpbmdzEhoKEnBvc2l0aW9uX3ByZWNpc2lvbhgBIAEo", + "DSKhAQoHQ2hhbm5lbBINCgVpbmRleBgBIAEoBRItCghzZXR0aW5ncxgCIAEo", + "CzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEiYKBHJvbGUYAyABKA4y", + "GC5tZXNodGFzdGljLkNoYW5uZWwuUm9sZSIwCgRSb2xlEgwKCERJU0FCTEVE", + "EAASCwoHUFJJTUFSWRABEg0KCVNFQ09OREFSWRACQmIKE2NvbS5nZWVrc3Zp", + "bGxlLm1lc2hCDUNoYW5uZWxQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3Rp", + "Yy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJv", + "dG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ChannelSettings), global::Meshtastic.Protobufs.ChannelSettings.Parser, new[]{ "ChannelNum", "Psk", "Name", "Id", "UplinkEnabled", "DownlinkEnabled" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ChannelSettings), global::Meshtastic.Protobufs.ChannelSettings.Parser, new[]{ "ChannelNum", "Psk", "Name", "Id", "UplinkEnabled", "DownlinkEnabled", "ModuleSettings" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ModuleSettings), global::Meshtastic.Protobufs.ModuleSettings.Parser, new[]{ "PositionPrecision" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Channel), global::Meshtastic.Protobufs.Channel.Parser, new[]{ "Index", "Settings", "Role" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Channel.Types.Role) }, null, null) })); } @@ -103,6 +107,7 @@ public ChannelSettings(ChannelSettings other) : this() { id_ = other.id_; uplinkEnabled_ = other.uplinkEnabled_; downlinkEnabled_ = other.downlinkEnabled_; + moduleSettings_ = other.moduleSettings_ != null ? other.moduleSettings_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -235,6 +240,22 @@ public bool DownlinkEnabled { } } + /// Field number for the "module_settings" field. + public const int ModuleSettingsFieldNumber = 7; + private global::Meshtastic.Protobufs.ModuleSettings moduleSettings_; + /// + /// + /// Per-channel module settings. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.ModuleSettings ModuleSettings { + get { return moduleSettings_; } + set { + moduleSettings_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -256,6 +277,7 @@ public bool Equals(ChannelSettings other) { if (Id != other.Id) return false; if (UplinkEnabled != other.UplinkEnabled) return false; if (DownlinkEnabled != other.DownlinkEnabled) return false; + if (!object.Equals(ModuleSettings, other.ModuleSettings)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -269,6 +291,7 @@ public override int GetHashCode() { if (Id != 0) hash ^= Id.GetHashCode(); if (UplinkEnabled != false) hash ^= UplinkEnabled.GetHashCode(); if (DownlinkEnabled != false) hash ^= DownlinkEnabled.GetHashCode(); + if (moduleSettings_ != null) hash ^= ModuleSettings.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -311,6 +334,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(48); output.WriteBool(DownlinkEnabled); } + if (moduleSettings_ != null) { + output.WriteRawTag(58); + output.WriteMessage(ModuleSettings); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -345,6 +372,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(48); output.WriteBool(DownlinkEnabled); } + if (moduleSettings_ != null) { + output.WriteRawTag(58); + output.WriteMessage(ModuleSettings); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -373,6 +404,9 @@ public int CalculateSize() { if (DownlinkEnabled != false) { size += 1 + 1; } + if (moduleSettings_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ModuleSettings); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -403,6 +437,12 @@ public void MergeFrom(ChannelSettings other) { if (other.DownlinkEnabled != false) { DownlinkEnabled = other.DownlinkEnabled; } + if (other.moduleSettings_ != null) { + if (moduleSettings_ == null) { + ModuleSettings = new global::Meshtastic.Protobufs.ModuleSettings(); + } + ModuleSettings.MergeFrom(other.ModuleSettings); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -442,6 +482,13 @@ public void MergeFrom(pb::CodedInputStream input) { DownlinkEnabled = input.ReadBool(); break; } + case 58: { + if (moduleSettings_ == null) { + ModuleSettings = new global::Meshtastic.Protobufs.ModuleSettings(); + } + input.ReadMessage(ModuleSettings); + break; + } } } #endif @@ -481,6 +528,210 @@ public void MergeFrom(pb::CodedInputStream input) { DownlinkEnabled = input.ReadBool(); break; } + case 58: { + if (moduleSettings_ == null) { + ModuleSettings = new global::Meshtastic.Protobufs.ModuleSettings(); + } + input.ReadMessage(ModuleSettings); + break; + } + } + } + } + #endif + + } + + /// + /// + /// This message is specifically for modules to store per-channel configuration data. + /// + public sealed partial class ModuleSettings : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ModuleSettings()); + 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.ChannelReflection.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 ModuleSettings() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ModuleSettings(ModuleSettings other) : this() { + positionPrecision_ = other.positionPrecision_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ModuleSettings Clone() { + return new ModuleSettings(this); + } + + /// Field number for the "position_precision" field. + public const int PositionPrecisionFieldNumber = 1; + private uint positionPrecision_; + /// + /// + /// Bits of precision for the location sent in position packets. + /// + [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 ModuleSettings); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ModuleSettings other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + 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 (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 (PositionPrecision != 0) { + output.WriteRawTag(8); + 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 (PositionPrecision != 0) { + output.WriteRawTag(8); + 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 (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(ModuleSettings other) { + if (other == null) { + return; + } + 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: { + 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: { + PositionPrecision = input.ReadUInt32(); + break; + } } } } @@ -506,7 +757,7 @@ public sealed partial class Channel : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Meshtastic.Protobufs.ChannelReflection.Descriptor.MessageTypes[1]; } + get { return global::Meshtastic.Protobufs.ChannelReflection.Descriptor.MessageTypes[2]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/Meshtastic/Generated/Config.cs b/Meshtastic/Generated/Config.cs index acfa8f5..2d071b2 100644 --- a/Meshtastic/Generated/Config.cs +++ b/Meshtastic/Generated/Config.cs @@ -24,7 +24,7 @@ public static partial class ConfigReflection { static ConfigReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyLpHQoGQ29u", + "ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyKTHwoGQ29u", "ZmlnEjEKBmRldmljZRgBIAEoCzIfLm1lc2h0YXN0aWMuQ29uZmlnLkRldmlj", "ZUNvbmZpZ0gAEjUKCHBvc2l0aW9uGAIgASgLMiEubWVzaHRhc3RpYy5Db25m", "aWcuUG9zaXRpb25Db25maWdIABIvCgVwb3dlchgDIAEoCzIeLm1lc2h0YXN0", @@ -33,7 +33,7 @@ static ConfigReflection() { "ASgLMiAubWVzaHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZ0gAEi0KBGxv", "cmEYBiABKAsyHS5tZXNodGFzdGljLkNvbmZpZy5Mb1JhQ29uZmlnSAASNwoJ", "Ymx1ZXRvb3RoGAcgASgLMiIubWVzaHRhc3RpYy5Db25maWcuQmx1ZXRvb3Ro", - "Q29uZmlnSAAa0QQKDERldmljZUNvbmZpZxIyCgRyb2xlGAEgASgOMiQubWVz", + "Q29uZmlnSAAa4gQKDERldmljZUNvbmZpZxIyCgRyb2xlGAEgASgOMiQubWVz", "aHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSFgoOc2VyaWFsX2Vu", "YWJsZWQYAiABKAgSGQoRZGVidWdfbG9nX2VuYWJsZWQYAyABKAgSEwoLYnV0", "dG9uX2dwaW8YBCABKA0SEwoLYnV6emVyX2dwaW8YBSABKA0SSQoQcmVicm9h", @@ -41,87 +41,90 @@ static ConfigReflection() { "bmZpZy5SZWJyb2FkY2FzdE1vZGUSIAoYbm9kZV9pbmZvX2Jyb2FkY2FzdF9z", "ZWNzGAcgASgNEiIKGmRvdWJsZV90YXBfYXNfYnV0dG9uX3ByZXNzGAggASgI", "EhIKCmlzX21hbmFnZWQYCSABKAgSHAoUZGlzYWJsZV90cmlwbGVfY2xpY2sY", - "CiABKAgimQEKBFJvbGUSCgoGQ0xJRU5UEAASDwoLQ0xJRU5UX01VVEUQARIK", + "CiABKAgiqgEKBFJvbGUSCgoGQ0xJRU5UEAASDwoLQ0xJRU5UX01VVEUQARIK", "CgZST1VURVIQAhIRCg1ST1VURVJfQ0xJRU5UEAMSDAoIUkVQRUFURVIQBBIL", "CgdUUkFDS0VSEAUSCgoGU0VOU09SEAYSBwoDVEFLEAcSEQoNQ0xJRU5UX0hJ", - "RERFThAIEhIKDkxPU1RfQU5EX0ZPVU5EEAkiUQoPUmVicm9hZGNhc3RNb2Rl", - "EgcKA0FMTBAAEhUKEUFMTF9TS0lQX0RFQ09ESU5HEAESDgoKTE9DQUxfT05M", - "WRACEg4KCktOT1dOX09OTFkQAxqZBAoOUG9zaXRpb25Db25maWcSHwoXcG9z", - "aXRpb25fYnJvYWRjYXN0X3NlY3MYASABKA0SKAogcG9zaXRpb25fYnJvYWRj", - "YXN0X3NtYXJ0X2VuYWJsZWQYAiABKAgSFgoOZml4ZWRfcG9zaXRpb24YAyAB", - "KAgSEwoLZ3BzX2VuYWJsZWQYBCABKAgSGwoTZ3BzX3VwZGF0ZV9pbnRlcnZh", - "bBgFIAEoDRIcChBncHNfYXR0ZW1wdF90aW1lGAYgASgNQgIYARIWCg5wb3Np", - "dGlvbl9mbGFncxgHIAEoDRIPCgdyeF9ncGlvGAggASgNEg8KB3R4X2dwaW8Y", - "CSABKA0SKAogYnJvYWRjYXN0X3NtYXJ0X21pbmltdW1fZGlzdGFuY2UYCiAB", - "KA0SLQolYnJvYWRjYXN0X3NtYXJ0X21pbmltdW1faW50ZXJ2YWxfc2VjcxgL", - "IAEoDRITCgtncHNfZW5fZ3BpbxgMIAEoDSKrAQoNUG9zaXRpb25GbGFncxIJ", - "CgVVTlNFVBAAEgwKCEFMVElUVURFEAESEAoMQUxUSVRVREVfTVNMEAISFgoS", - "R0VPSURBTF9TRVBBUkFUSU9OEAQSBwoDRE9QEAgSCQoFSFZET1AQEBINCglT", - "QVRJTlZJRVcQIBIKCgZTRVFfTk8QQBIOCglUSU1FU1RBTVAQgAESDAoHSEVB", - "RElORxCAAhIKCgVTUEVFRBCABBrqAQoLUG93ZXJDb25maWcSFwoPaXNfcG93", - "ZXJfc2F2aW5nGAEgASgIEiYKHm9uX2JhdHRlcnlfc2h1dGRvd25fYWZ0ZXJf", - "c2VjcxgCIAEoDRIfChdhZGNfbXVsdGlwbGllcl9vdmVycmlkZRgDIAEoAhIb", - "ChN3YWl0X2JsdWV0b290aF9zZWNzGAQgASgNEhAKCHNkc19zZWNzGAYgASgN", - "Eg8KB2xzX3NlY3MYByABKA0SFQoNbWluX3dha2Vfc2VjcxgIIAEoDRIiChpk", - "ZXZpY2VfYmF0dGVyeV9pbmFfYWRkcmVzcxgJIAEoDRr+AgoNTmV0d29ya0Nv", - "bmZpZxIUCgx3aWZpX2VuYWJsZWQYASABKAgSEQoJd2lmaV9zc2lkGAMgASgJ", - "EhAKCHdpZmlfcHNrGAQgASgJEhIKCm50cF9zZXJ2ZXIYBSABKAkSEwoLZXRo", - "X2VuYWJsZWQYBiABKAgSQgoMYWRkcmVzc19tb2RlGAcgASgOMiwubWVzaHRh", - "c3RpYy5Db25maWcuTmV0d29ya0NvbmZpZy5BZGRyZXNzTW9kZRJACgtpcHY0", - "X2NvbmZpZxgIIAEoCzIrLm1lc2h0YXN0aWMuQ29uZmlnLk5ldHdvcmtDb25m", - "aWcuSXBWNENvbmZpZxIWCg5yc3lzbG9nX3NlcnZlchgJIAEoCRpGCgpJcFY0", - "Q29uZmlnEgoKAmlwGAEgASgHEg8KB2dhdGV3YXkYAiABKAcSDgoGc3VibmV0", - "GAMgASgHEgsKA2RucxgEIAEoByIjCgtBZGRyZXNzTW9kZRIICgRESENQEAAS", - "CgoGU1RBVElDEAEavgUKDURpc3BsYXlDb25maWcSFgoOc2NyZWVuX29uX3Nl", - "Y3MYASABKA0SSAoKZ3BzX2Zvcm1hdBgCIAEoDjI0Lm1lc2h0YXN0aWMuQ29u", - "ZmlnLkRpc3BsYXlDb25maWcuR3BzQ29vcmRpbmF0ZUZvcm1hdBIhChlhdXRv", - "X3NjcmVlbl9jYXJvdXNlbF9zZWNzGAMgASgNEhkKEWNvbXBhc3Nfbm9ydGhf", - "dG9wGAQgASgIEhMKC2ZsaXBfc2NyZWVuGAUgASgIEjwKBXVuaXRzGAYgASgO", - "Mi0ubWVzaHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZy5EaXNwbGF5VW5p", - "dHMSNwoEb2xlZBgHIAEoDjIpLm1lc2h0YXN0aWMuQ29uZmlnLkRpc3BsYXlD", - "b25maWcuT2xlZFR5cGUSQQoLZGlzcGxheW1vZGUYCCABKA4yLC5tZXNodGFz", - "dGljLkNvbmZpZy5EaXNwbGF5Q29uZmlnLkRpc3BsYXlNb2RlEhQKDGhlYWRp", - "bmdfYm9sZBgJIAEoCBIdChV3YWtlX29uX3RhcF9vcl9tb3Rpb24YCiABKAgi", - "TQoTR3BzQ29vcmRpbmF0ZUZvcm1hdBIHCgNERUMQABIHCgNETVMQARIHCgNV", - "VE0QAhIICgRNR1JTEAMSBwoDT0xDEAQSCAoET1NHUhAFIigKDERpc3BsYXlV", - "bml0cxIKCgZNRVRSSUMQABIMCghJTVBFUklBTBABIk0KCE9sZWRUeXBlEg0K", - "CU9MRURfQVVUTxAAEhAKDE9MRURfU1NEMTMwNhABEg8KC09MRURfU0gxMTA2", - "EAISDwoLT0xFRF9TSDExMDcQAyJBCgtEaXNwbGF5TW9kZRILCgdERUZBVUxU", - "EAASDAoIVFdPQ09MT1IQARIMCghJTlZFUlRFRBACEgkKBUNPTE9SEAMajwYK", - "CkxvUmFDb25maWcSEgoKdXNlX3ByZXNldBgBIAEoCBI/Cgxtb2RlbV9wcmVz", - "ZXQYAiABKA4yKS5tZXNodGFzdGljLkNvbmZpZy5Mb1JhQ29uZmlnLk1vZGVt", - "UHJlc2V0EhEKCWJhbmR3aWR0aBgDIAEoDRIVCg1zcHJlYWRfZmFjdG9yGAQg", - "ASgNEhMKC2NvZGluZ19yYXRlGAUgASgNEhgKEGZyZXF1ZW5jeV9vZmZzZXQY", - "BiABKAISOAoGcmVnaW9uGAcgASgOMigubWVzaHRhc3RpYy5Db25maWcuTG9S", - "YUNvbmZpZy5SZWdpb25Db2RlEhEKCWhvcF9saW1pdBgIIAEoDRISCgp0eF9l", - "bmFibGVkGAkgASgIEhAKCHR4X3Bvd2VyGAogASgFEhMKC2NoYW5uZWxfbnVt", - "GAsgASgNEhsKE292ZXJyaWRlX2R1dHlfY3ljbGUYDCABKAgSHgoWc3gxMjZ4", - "X3J4X2Jvb3N0ZWRfZ2FpbhgNIAEoCBIaChJvdmVycmlkZV9mcmVxdWVuY3kY", - "DiABKAISFwoPaWdub3JlX2luY29taW5nGGcgAygNIsEBCgpSZWdpb25Db2Rl", - "EgkKBVVOU0VUEAASBgoCVVMQARIKCgZFVV80MzMQAhIKCgZFVV84NjgQAxIG", - "CgJDThAEEgYKAkpQEAUSBwoDQU5aEAYSBgoCS1IQBxIGCgJUVxAIEgYKAlJV", - "EAkSBgoCSU4QChIKCgZOWl84NjUQCxIGCgJUSBAMEgsKB0xPUkFfMjQQDRIK", - "CgZVQV80MzMQDhIKCgZVQV84NjgQDxIKCgZNWV80MzMQEBIKCgZNWV85MTkQ", - "ESKUAQoLTW9kZW1QcmVzZXQSDQoJTE9OR19GQVNUEAASDQoJTE9OR19TTE9X", - "EAESEgoOVkVSWV9MT05HX1NMT1cQAhIPCgtNRURJVU1fU0xPVxADEg8KC01F", - "RElVTV9GQVNUEAQSDgoKU0hPUlRfU0xPVxAFEg4KClNIT1JUX0ZBU1QQBhIR", - "Cg1MT05HX01PREVSQVRFEAcarQEKD0JsdWV0b290aENvbmZpZxIPCgdlbmFi", - "bGVkGAEgASgIEjwKBG1vZGUYAiABKA4yLi5tZXNodGFzdGljLkNvbmZpZy5C", - "bHVldG9vdGhDb25maWcuUGFpcmluZ01vZGUSEQoJZml4ZWRfcGluGAMgASgN", - "IjgKC1BhaXJpbmdNb2RlEg4KClJBTkRPTV9QSU4QABINCglGSVhFRF9QSU4Q", - "ARIKCgZOT19QSU4QAkIRCg9wYXlsb2FkX3ZhcmlhbnRCYQoTY29tLmdlZWtz", - "dmlsbGUubWVzaEIMQ29uZmlnUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0", - "aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnBy", - "b3RvMw==")); + "RERFThAIEhIKDkxPU1RfQU5EX0ZPVU5EEAkSDwoLVEFLX1RSQUNLRVIQCiJR", + "Cg9SZWJyb2FkY2FzdE1vZGUSBwoDQUxMEAASFQoRQUxMX1NLSVBfREVDT0RJ", + "TkcQARIOCgpMT0NBTF9PTkxZEAISDgoKS05PV05fT05MWRADGpEFCg5Qb3Np", + "dGlvbkNvbmZpZxIfChdwb3NpdGlvbl9icm9hZGNhc3Rfc2VjcxgBIAEoDRIo", + "CiBwb3NpdGlvbl9icm9hZGNhc3Rfc21hcnRfZW5hYmxlZBgCIAEoCBIWCg5m", + "aXhlZF9wb3NpdGlvbhgDIAEoCBIXCgtncHNfZW5hYmxlZBgEIAEoCEICGAES", + "GwoTZ3BzX3VwZGF0ZV9pbnRlcnZhbBgFIAEoDRIcChBncHNfYXR0ZW1wdF90", + "aW1lGAYgASgNQgIYARIWCg5wb3NpdGlvbl9mbGFncxgHIAEoDRIPCgdyeF9n", + "cGlvGAggASgNEg8KB3R4X2dwaW8YCSABKA0SKAogYnJvYWRjYXN0X3NtYXJ0", + "X21pbmltdW1fZGlzdGFuY2UYCiABKA0SLQolYnJvYWRjYXN0X3NtYXJ0X21p", + "bmltdW1faW50ZXJ2YWxfc2VjcxgLIAEoDRITCgtncHNfZW5fZ3BpbxgMIAEo", + "DRI7CghncHNfbW9kZRgNIAEoDjIpLm1lc2h0YXN0aWMuQ29uZmlnLlBvc2l0", + "aW9uQ29uZmlnLkdwc01vZGUiqwEKDVBvc2l0aW9uRmxhZ3MSCQoFVU5TRVQQ", + "ABIMCghBTFRJVFVERRABEhAKDEFMVElUVURFX01TTBACEhYKEkdFT0lEQUxf", + "U0VQQVJBVElPThAEEgcKA0RPUBAIEgkKBUhWRE9QEBASDQoJU0FUSU5WSUVX", + "ECASCgoGU0VRX05PEEASDgoJVElNRVNUQU1QEIABEgwKB0hFQURJTkcQgAIS", + "CgoFU1BFRUQQgAQiNQoHR3BzTW9kZRIMCghESVNBQkxFRBAAEgsKB0VOQUJM", + "RUQQARIPCgtOT1RfUFJFU0VOVBACGuoBCgtQb3dlckNvbmZpZxIXCg9pc19w", + "b3dlcl9zYXZpbmcYASABKAgSJgoeb25fYmF0dGVyeV9zaHV0ZG93bl9hZnRl", + "cl9zZWNzGAIgASgNEh8KF2FkY19tdWx0aXBsaWVyX292ZXJyaWRlGAMgASgC", + "EhsKE3dhaXRfYmx1ZXRvb3RoX3NlY3MYBCABKA0SEAoIc2RzX3NlY3MYBiAB", + "KA0SDwoHbHNfc2VjcxgHIAEoDRIVCg1taW5fd2FrZV9zZWNzGAggASgNEiIK", + "GmRldmljZV9iYXR0ZXJ5X2luYV9hZGRyZXNzGAkgASgNGv4CCg1OZXR3b3Jr", + "Q29uZmlnEhQKDHdpZmlfZW5hYmxlZBgBIAEoCBIRCgl3aWZpX3NzaWQYAyAB", + "KAkSEAoId2lmaV9wc2sYBCABKAkSEgoKbnRwX3NlcnZlchgFIAEoCRITCgtl", + "dGhfZW5hYmxlZBgGIAEoCBJCCgxhZGRyZXNzX21vZGUYByABKA4yLC5tZXNo", + "dGFzdGljLkNvbmZpZy5OZXR3b3JrQ29uZmlnLkFkZHJlc3NNb2RlEkAKC2lw", + "djRfY29uZmlnGAggASgLMisubWVzaHRhc3RpYy5Db25maWcuTmV0d29ya0Nv", + "bmZpZy5JcFY0Q29uZmlnEhYKDnJzeXNsb2dfc2VydmVyGAkgASgJGkYKCklw", + "VjRDb25maWcSCgoCaXAYASABKAcSDwoHZ2F0ZXdheRgCIAEoBxIOCgZzdWJu", + "ZXQYAyABKAcSCwoDZG5zGAQgASgHIiMKC0FkZHJlc3NNb2RlEggKBERIQ1AQ", + "ABIKCgZTVEFUSUMQARq+BQoNRGlzcGxheUNvbmZpZxIWCg5zY3JlZW5fb25f", + "c2VjcxgBIAEoDRJICgpncHNfZm9ybWF0GAIgASgOMjQubWVzaHRhc3RpYy5D", + "b25maWcuRGlzcGxheUNvbmZpZy5HcHNDb29yZGluYXRlRm9ybWF0EiEKGWF1", + "dG9fc2NyZWVuX2Nhcm91c2VsX3NlY3MYAyABKA0SGQoRY29tcGFzc19ub3J0", + "aF90b3AYBCABKAgSEwoLZmxpcF9zY3JlZW4YBSABKAgSPAoFdW5pdHMYBiAB", + "KA4yLS5tZXNodGFzdGljLkNvbmZpZy5EaXNwbGF5Q29uZmlnLkRpc3BsYXlV", + "bml0cxI3CgRvbGVkGAcgASgOMikubWVzaHRhc3RpYy5Db25maWcuRGlzcGxh", + "eUNvbmZpZy5PbGVkVHlwZRJBCgtkaXNwbGF5bW9kZRgIIAEoDjIsLm1lc2h0", + "YXN0aWMuQ29uZmlnLkRpc3BsYXlDb25maWcuRGlzcGxheU1vZGUSFAoMaGVh", + "ZGluZ19ib2xkGAkgASgIEh0KFXdha2Vfb25fdGFwX29yX21vdGlvbhgKIAEo", + "CCJNChNHcHNDb29yZGluYXRlRm9ybWF0EgcKA0RFQxAAEgcKA0RNUxABEgcK", + "A1VUTRACEggKBE1HUlMQAxIHCgNPTEMQBBIICgRPU0dSEAUiKAoMRGlzcGxh", + "eVVuaXRzEgoKBk1FVFJJQxAAEgwKCElNUEVSSUFMEAEiTQoIT2xlZFR5cGUS", + "DQoJT0xFRF9BVVRPEAASEAoMT0xFRF9TU0QxMzA2EAESDwoLT0xFRF9TSDEx", + "MDYQAhIPCgtPTEVEX1NIMTEwNxADIkEKC0Rpc3BsYXlNb2RlEgsKB0RFRkFV", + "TFQQABIMCghUV09DT0xPUhABEgwKCElOVkVSVEVEEAISCQoFQ09MT1IQAxqw", + "BgoKTG9SYUNvbmZpZxISCgp1c2VfcHJlc2V0GAEgASgIEj8KDG1vZGVtX3By", + "ZXNldBgCIAEoDjIpLm1lc2h0YXN0aWMuQ29uZmlnLkxvUmFDb25maWcuTW9k", + "ZW1QcmVzZXQSEQoJYmFuZHdpZHRoGAMgASgNEhUKDXNwcmVhZF9mYWN0b3IY", + "BCABKA0SEwoLY29kaW5nX3JhdGUYBSABKA0SGAoQZnJlcXVlbmN5X29mZnNl", + "dBgGIAEoAhI4CgZyZWdpb24YByABKA4yKC5tZXNodGFzdGljLkNvbmZpZy5M", + "b1JhQ29uZmlnLlJlZ2lvbkNvZGUSEQoJaG9wX2xpbWl0GAggASgNEhIKCnR4", + "X2VuYWJsZWQYCSABKAgSEAoIdHhfcG93ZXIYCiABKAUSEwoLY2hhbm5lbF9u", + "dW0YCyABKA0SGwoTb3ZlcnJpZGVfZHV0eV9jeWNsZRgMIAEoCBIeChZzeDEy", + "NnhfcnhfYm9vc3RlZF9nYWluGA0gASgIEhoKEm92ZXJyaWRlX2ZyZXF1ZW5j", + "eRgOIAEoAhIXCg9pZ25vcmVfaW5jb21pbmcYZyADKA0SEwoLaWdub3JlX21x", + "dHQYaCABKAgizQEKClJlZ2lvbkNvZGUSCQoFVU5TRVQQABIGCgJVUxABEgoK", + "BkVVXzQzMxACEgoKBkVVXzg2OBADEgYKAkNOEAQSBgoCSlAQBRIHCgNBTloQ", + "BhIGCgJLUhAHEgYKAlRXEAgSBgoCUlUQCRIGCgJJThAKEgoKBk5aXzg2NRAL", + "EgYKAlRIEAwSCwoHTE9SQV8yNBANEgoKBlVBXzQzMxAOEgoKBlVBXzg2OBAP", + "EgoKBk1ZXzQzMxAQEgoKBk1ZXzkxORAREgoKBlNHXzkyMxASIpQBCgtNb2Rl", + "bVByZXNldBINCglMT05HX0ZBU1QQABINCglMT05HX1NMT1cQARISCg5WRVJZ", + "X0xPTkdfU0xPVxACEg8KC01FRElVTV9TTE9XEAMSDwoLTUVESVVNX0ZBU1QQ", + "BBIOCgpTSE9SVF9TTE9XEAUSDgoKU0hPUlRfRkFTVBAGEhEKDUxPTkdfTU9E", + "RVJBVEUQBxqtAQoPQmx1ZXRvb3RoQ29uZmlnEg8KB2VuYWJsZWQYASABKAgS", + "PAoEbW9kZRgCIAEoDjIuLm1lc2h0YXN0aWMuQ29uZmlnLkJsdWV0b290aENv", + "bmZpZy5QYWlyaW5nTW9kZRIRCglmaXhlZF9waW4YAyABKA0iOAoLUGFpcmlu", + "Z01vZGUSDgoKUkFORE9NX1BJThAAEg0KCUZJWEVEX1BJThABEgoKBk5PX1BJ", + "ThACQhEKD3BheWxvYWRfdmFyaWFudEJhChNjb20uZ2Vla3N2aWxsZS5tZXNo", + "QgxDb25maWdQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5l", + "cmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config), global::Meshtastic.Protobufs.Config.Parser, new[]{ "Device", "Position", "Power", "Network", "Display", "Lora", "Bluetooth" }, new[]{ "PayloadVariant" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.DeviceConfig), global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Parser, new[]{ "Role", "SerialEnabled", "DebugLogEnabled", "ButtonGpio", "BuzzerGpio", "RebroadcastMode", "NodeInfoBroadcastSecs", "DoubleTapAsButtonPress", "IsManaged", "DisableTripleClick" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.Role), typeof(global::Meshtastic.Protobufs.Config.Types.DeviceConfig.Types.RebroadcastMode) }, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.PositionConfig), global::Meshtastic.Protobufs.Config.Types.PositionConfig.Parser, new[]{ "PositionBroadcastSecs", "PositionBroadcastSmartEnabled", "FixedPosition", "GpsEnabled", "GpsUpdateInterval", "GpsAttemptTime", "PositionFlags", "RxGpio", "TxGpio", "BroadcastSmartMinimumDistance", "BroadcastSmartMinimumIntervalSecs", "GpsEnGpio" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.PositionFlags) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.PositionConfig), global::Meshtastic.Protobufs.Config.Types.PositionConfig.Parser, new[]{ "PositionBroadcastSecs", "PositionBroadcastSmartEnabled", "FixedPosition", "GpsEnabled", "GpsUpdateInterval", "GpsAttemptTime", "PositionFlags", "RxGpio", "TxGpio", "BroadcastSmartMinimumDistance", "BroadcastSmartMinimumIntervalSecs", "GpsEnGpio", "GpsMode" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.PositionFlags), typeof(global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.PowerConfig), global::Meshtastic.Protobufs.Config.Types.PowerConfig.Parser, new[]{ "IsPowerSaving", "OnBatteryShutdownAfterSecs", "AdcMultiplierOverride", "WaitBluetoothSecs", "SdsSecs", "LsSecs", "MinWakeSecs", "DeviceBatteryInaAddress" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.NetworkConfig), global::Meshtastic.Protobufs.Config.Types.NetworkConfig.Parser, new[]{ "WifiEnabled", "WifiSsid", "WifiPsk", "NtpServer", "EthEnabled", "AddressMode", "Ipv4Config", "RsyslogServer" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.NetworkConfig.Types.AddressMode) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.NetworkConfig.Types.IpV4Config), global::Meshtastic.Protobufs.Config.Types.NetworkConfig.Types.IpV4Config.Parser, new[]{ "Ip", "Gateway", "Subnet", "Dns" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.DisplayConfig), global::Meshtastic.Protobufs.Config.Types.DisplayConfig.Parser, new[]{ "ScreenOnSecs", "GpsFormat", "AutoScreenCarouselSecs", "CompassNorthTop", "FlipScreen", "Units", "Oled", "Displaymode", "HeadingBold", "WakeOnTapOrMotion" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.DisplayConfig.Types.GpsCoordinateFormat), typeof(global::Meshtastic.Protobufs.Config.Types.DisplayConfig.Types.DisplayUnits), typeof(global::Meshtastic.Protobufs.Config.Types.DisplayConfig.Types.OledType), typeof(global::Meshtastic.Protobufs.Config.Types.DisplayConfig.Types.DisplayMode) }, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig), global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Parser, new[]{ "UsePreset", "ModemPreset", "Bandwidth", "SpreadFactor", "CodingRate", "FrequencyOffset", "Region", "HopLimit", "TxEnabled", "TxPower", "ChannelNum", "OverrideDutyCycle", "Sx126XRxBoostedGain", "OverrideFrequency", "IgnoreIncoming" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode), typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig), global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Parser, new[]{ "UsePreset", "ModemPreset", "Bandwidth", "SpreadFactor", "CodingRate", "FrequencyOffset", "Region", "HopLimit", "TxEnabled", "TxPower", "ChannelNum", "OverrideDutyCycle", "Sx126XRxBoostedGain", "OverrideFrequency", "IgnoreIncoming", "IgnoreMqtt" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.RegionCode), typeof(global::Meshtastic.Protobufs.Config.Types.LoRaConfig.Types.ModemPreset) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Config.Types.BluetoothConfig), global::Meshtastic.Protobufs.Config.Types.BluetoothConfig.Parser, new[]{ "Enabled", "Mode", "FixedPin" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Config.Types.BluetoothConfig.Types.PairingMode) }, null, null)}) })); } @@ -1263,64 +1266,63 @@ public static partial class Types { public enum Role { /// /// - /// Client device role + /// Description: App connected or stand alone messaging device. + /// Technical Details: Default Role /// [pbr::OriginalName("CLIENT")] Client = 0, /// /// - /// Client Mute device role - /// Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh. + /// Description: Device that does not forward packets from other devices. /// [pbr::OriginalName("CLIENT_MUTE")] ClientMute = 1, /// /// - /// Router device role. - /// Mesh packets will prefer to be routed over this node. This node will not be used by client apps. - /// The wifi/ble radios and the oled screen will be put to sleep. + /// Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list. + /// Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps. + /// The wifi radio and the oled screen will be put to sleep. /// This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh. /// [pbr::OriginalName("ROUTER")] Router = 2, /// /// - /// Router Client device role - /// Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client. + /// Description: Combination of both ROUTER and CLIENT. Not for mobile devices. /// [pbr::OriginalName("ROUTER_CLIENT")] RouterClient = 3, /// /// - /// Repeater device role - /// Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry + /// Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list. + /// Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry /// or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate. /// [pbr::OriginalName("REPEATER")] Repeater = 4, /// /// - /// Tracker device role - /// Position Mesh packets will be prioritized higher and sent more frequently by default. + /// Description: Broadcasts GPS position packets as priority. + /// Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default. /// When used in conjunction with power.is_power_saving = true, nodes will wake up, /// send position, and then sleep for position.position_broadcast_secs seconds. /// [pbr::OriginalName("TRACKER")] Tracker = 5, /// /// - /// Sensor device role - /// Telemetry Mesh packets will be prioritized higher and sent more frequently by default. + /// Description: Broadcasts telemetry packets as priority. + /// Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default. /// When used in conjunction with power.is_power_saving = true, nodes will wake up, /// send environment telemetry, and then sleep for telemetry.environment_update_interval seconds. /// [pbr::OriginalName("SENSOR")] Sensor = 6, /// /// - /// TAK device role - /// Used for nodes dedicated for connection to an ATAK EUD. + /// Description: Optimized for ATAK system communication and reduces routine broadcasts. + /// Technical Details: Used for nodes dedicated for connection to an ATAK EUD. /// Turns off many of the routine broadcasts to favor CoT packet stream /// from the Meshtastic ATAK plugin -> IMeshService -> Node /// [pbr::OriginalName("TAK")] Tak = 7, /// /// - /// Client Hidden device role - /// Used for nodes that "only speak when spoken to" + /// Description: Device that only broadcasts as needed for stealth or power savings. + /// Technical Details: Used for nodes that "only speak when spoken to" /// Turns all of the routine broadcasts but allows for ad-hoc communication /// Still rebroadcasts, but with local only rebroadcast mode (known meshes only) /// Can be used for clandestine operation or to dramatically reduce airtime / power consumption @@ -1328,12 +1330,20 @@ public enum Role { [pbr::OriginalName("CLIENT_HIDDEN")] ClientHidden = 8, /// /// - /// Lost and Found device role - /// Used to automatically send a text message to the mesh + /// Description: Broadcasts location as message to default channel regularly for to assist with device recovery. + /// Technical Details: Used to automatically send a text message to the mesh /// with the current position of the device on a frequent interval: /// "I'm lost! Position: lat / long" /// [pbr::OriginalName("LOST_AND_FOUND")] LostAndFound = 9, + /// + /// + /// Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts. + /// Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream + /// and automatic TAK PLI (position location information) broadcasts. + /// Uses position module configuration to determine TAK PLI broadcast interval. + /// + [pbr::OriginalName("TAK_TRACKER")] TakTracker = 10, } /// @@ -1422,6 +1432,7 @@ public PositionConfig(PositionConfig other) : this() { broadcastSmartMinimumDistance_ = other.broadcastSmartMinimumDistance_; broadcastSmartMinimumIntervalSecs_ = other.broadcastSmartMinimumIntervalSecs_; gpsEnGpio_ = other.gpsEnGpio_; + gpsMode_ = other.gpsMode_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1489,6 +1500,7 @@ public bool FixedPosition { /// /// Is GPS enabled for this node? /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool GpsEnabled { @@ -1630,6 +1642,22 @@ public uint GpsEnGpio { } } + /// Field number for the "gps_mode" field. + public const int GpsModeFieldNumber = 13; + private global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode gpsMode_ = global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled; + /// + /// + /// Set where GPS is enabled, disabled, or not present + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode GpsMode { + get { return gpsMode_; } + set { + gpsMode_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1657,6 +1685,7 @@ public bool Equals(PositionConfig other) { if (BroadcastSmartMinimumDistance != other.BroadcastSmartMinimumDistance) return false; if (BroadcastSmartMinimumIntervalSecs != other.BroadcastSmartMinimumIntervalSecs) return false; if (GpsEnGpio != other.GpsEnGpio) return false; + if (GpsMode != other.GpsMode) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1676,6 +1705,7 @@ public override int GetHashCode() { if (BroadcastSmartMinimumDistance != 0) hash ^= BroadcastSmartMinimumDistance.GetHashCode(); if (BroadcastSmartMinimumIntervalSecs != 0) hash ^= BroadcastSmartMinimumIntervalSecs.GetHashCode(); if (GpsEnGpio != 0) hash ^= GpsEnGpio.GetHashCode(); + if (GpsMode != global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled) hash ^= GpsMode.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1742,6 +1772,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(96); output.WriteUInt32(GpsEnGpio); } + if (GpsMode != global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled) { + output.WriteRawTag(104); + output.WriteEnum((int) GpsMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1800,6 +1834,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(96); output.WriteUInt32(GpsEnGpio); } + if (GpsMode != global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled) { + output.WriteRawTag(104); + output.WriteEnum((int) GpsMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1846,6 +1884,9 @@ public int CalculateSize() { if (GpsEnGpio != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(GpsEnGpio); } + if (GpsMode != global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GpsMode); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1894,6 +1935,9 @@ public void MergeFrom(PositionConfig other) { if (other.GpsEnGpio != 0) { GpsEnGpio = other.GpsEnGpio; } + if (other.GpsMode != global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode.Disabled) { + GpsMode = other.GpsMode; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1957,6 +2001,10 @@ public void MergeFrom(pb::CodedInputStream input) { GpsEnGpio = input.ReadUInt32(); break; } + case 104: { + GpsMode = (global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode) input.ReadEnum(); + break; + } } } #endif @@ -2020,6 +2068,10 @@ public void MergeFrom(pb::CodedInputStream input) { GpsEnGpio = input.ReadUInt32(); break; } + case 104: { + GpsMode = (global::Meshtastic.Protobufs.Config.Types.PositionConfig.Types.GpsMode) input.ReadEnum(); + break; + } } } } @@ -2101,6 +2153,24 @@ public enum PositionFlags { [pbr::OriginalName("SPEED")] Speed = 512, } + public enum GpsMode { + /// + /// + /// GPS is present but disabled + /// + [pbr::OriginalName("DISABLED")] Disabled = 0, + /// + /// + /// GPS is present and enabled + /// + [pbr::OriginalName("ENABLED")] Enabled = 1, + /// + /// + /// GPS is not present on the device + /// + [pbr::OriginalName("NOT_PRESENT")] NotPresent = 2, + } + } #endregion @@ -4179,6 +4249,7 @@ public LoRaConfig(LoRaConfig other) : this() { sx126XRxBoostedGain_ = other.sx126XRxBoostedGain_; overrideFrequency_ = other.overrideFrequency_; ignoreIncoming_ = other.ignoreIncoming_.Clone(); + ignoreMqtt_ = other.ignoreMqtt_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4458,6 +4529,22 @@ public float OverrideFrequency { get { return ignoreIncoming_; } } + /// Field number for the "ignore_mqtt" field. + public const int IgnoreMqttFieldNumber = 104; + private bool ignoreMqtt_; + /// + /// + /// If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IgnoreMqtt { + get { return ignoreMqtt_; } + set { + ignoreMqtt_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -4488,6 +4575,7 @@ public bool Equals(LoRaConfig other) { if (Sx126XRxBoostedGain != other.Sx126XRxBoostedGain) return false; if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OverrideFrequency, other.OverrideFrequency)) return false; if(!ignoreIncoming_.Equals(other.ignoreIncoming_)) return false; + if (IgnoreMqtt != other.IgnoreMqtt) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4510,6 +4598,7 @@ public override int GetHashCode() { if (Sx126XRxBoostedGain != false) hash ^= Sx126XRxBoostedGain.GetHashCode(); if (OverrideFrequency != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OverrideFrequency); hash ^= ignoreIncoming_.GetHashCode(); + if (IgnoreMqtt != false) hash ^= IgnoreMqtt.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4585,6 +4674,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteFloat(OverrideFrequency); } ignoreIncoming_.WriteTo(output, _repeated_ignoreIncoming_codec); + if (IgnoreMqtt != false) { + output.WriteRawTag(192, 6); + output.WriteBool(IgnoreMqtt); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4652,6 +4745,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteFloat(OverrideFrequency); } ignoreIncoming_.WriteTo(ref output, _repeated_ignoreIncoming_codec); + if (IgnoreMqtt != false) { + output.WriteRawTag(192, 6); + output.WriteBool(IgnoreMqtt); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4705,6 +4802,9 @@ public int CalculateSize() { size += 1 + 4; } size += ignoreIncoming_.CalculateSize(_repeated_ignoreIncoming_codec); + if (IgnoreMqtt != false) { + size += 2 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4760,6 +4860,9 @@ public void MergeFrom(LoRaConfig other) { OverrideFrequency = other.OverrideFrequency; } ignoreIncoming_.Add(other.ignoreIncoming_); + if (other.IgnoreMqtt != false) { + IgnoreMqtt = other.IgnoreMqtt; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4836,6 +4939,10 @@ public void MergeFrom(pb::CodedInputStream input) { ignoreIncoming_.AddEntriesFrom(input, _repeated_ignoreIncoming_codec); break; } + case 832: { + IgnoreMqtt = input.ReadBool(); + break; + } } } #endif @@ -4912,6 +5019,10 @@ public void MergeFrom(pb::CodedInputStream input) { ignoreIncoming_.AddEntriesFrom(ref input, _repeated_ignoreIncoming_codec); break; } + case 832: { + IgnoreMqtt = input.ReadBool(); + break; + } } } } @@ -5013,6 +5124,11 @@ public enum RegionCode { /// Malaysia 919mhz /// [pbr::OriginalName("MY_919")] My919 = 17, + /// + /// + /// Singapore 923mhz + /// + [pbr::OriginalName("SG_923")] Sg923 = 18, } /// diff --git a/Meshtastic/Generated/Deviceonly.cs b/Meshtastic/Generated/Deviceonly.cs deleted file mode 100644 index 66d77ef..0000000 --- a/Meshtastic/Generated/Deviceonly.cs +++ /dev/null @@ -1,2499 +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", - "zAEKDE5vZGVJbmZvTGl0ZRILCgNudW0YASABKA0SHgoEdXNlchgCIAEoCzIQ", - "Lm1lc2h0YXN0aWMuVXNlchIqCghwb3NpdGlvbhgDIAEoCzIYLm1lc2h0YXN0", - "aWMuUG9zaXRpb25MaXRlEgsKA3NuchgEIAEoAhISCgpsYXN0X2hlYXJkGAUg", - "ASgHEjEKDmRldmljZV9tZXRyaWNzGAYgASgLMhkubWVzaHRhc3RpYy5EZXZp", - "Y2VNZXRyaWNzEg8KB2NoYW5uZWwYByABKA0ikAEKDFBvc2l0aW9uTGl0ZRIS", - "CgpsYXRpdHVkZV9pGAEgASgPEhMKC2xvbmdpdHVkZV9pGAIgASgPEhAKCGFs", - "dGl0dWRlGAMgASgFEgwKBHRpbWUYBCABKAcSNwoPbG9jYXRpb25fc291cmNl", - "GAUgASgOMh4ubWVzaHRhc3RpYy5Qb3NpdGlvbi5Mb2NTb3VyY2UiRQoLQ2hh", - "bm5lbEZpbGUSJQoIY2hhbm5lbHMYASADKAsyEy5tZXNodGFzdGljLkNoYW5u", - "ZWwSDwoHdmVyc2lvbhgCIAEoDSKXAgoIT0VNU3RvcmUSFgoOb2VtX2ljb25f", - "d2lkdGgYASABKA0SFwoPb2VtX2ljb25faGVpZ2h0GAIgASgNEhUKDW9lbV9p", - "Y29uX2JpdHMYAyABKAwSKQoIb2VtX2ZvbnQYBCABKA4yFy5tZXNodGFzdGlj", - "LlNjcmVlbkZvbnRzEhAKCG9lbV90ZXh0GAUgASgJEhMKC29lbV9hZXNfa2V5", - "GAYgASgMEjEKEG9lbV9sb2NhbF9jb25maWcYByABKAsyFy5tZXNodGFzdGlj", - "LkxvY2FsQ29uZmlnEj4KF29lbV9sb2NhbF9tb2R1bGVfY29uZmlnGAggASgL", - "Mh0ubWVzaHRhc3RpYy5Mb2NhbE1vZHVsZUNvbmZpZyJVChVOb2RlUmVtb3Rl", - "SGFyZHdhcmVQaW4SEAoIbm9kZV9udW0YASABKA0SKgoDcGluGAIgASgLMh0u", - "bWVzaHRhc3RpYy5SZW1vdGVIYXJkd2FyZVBpbio+CgtTY3JlZW5Gb250cxIO", - "CgpGT05UX1NNQUxMEAASDwoLRk9OVF9NRURJVU0QARIOCgpGT05UX0xBUkdF", - "EAJCXwoTY29tLmdlZWtzdmlsbGUubWVzaEIKRGV2aWNlT25seVoiZ2l0aHVi", - "LmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJv", - "dG9idWZzugIAYgZwcm90bzM=")); - 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" }, 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_; - _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; - } - } - - [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; - 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 (_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 (_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 (_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 (_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; - } - _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; - } - } - } - #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; - } - } - } - } - #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 3798daa..2247634 100644 --- a/Meshtastic/Generated/Mesh.cs +++ b/Meshtastic/Generated/Mesh.cs @@ -28,7 +28,7 @@ static MeshReflection() { "aWMvY2hhbm5lbC5wcm90bxoXbWVzaHRhc3RpYy9jb25maWcucHJvdG8aHm1l", "c2h0YXN0aWMvbW9kdWxlX2NvbmZpZy5wcm90bxoZbWVzaHRhc3RpYy9wb3J0", "bnVtcy5wcm90bxoabWVzaHRhc3RpYy90ZWxlbWV0cnkucHJvdG8aF21lc2h0", - "YXN0aWMveG1vZGVtLnByb3RvIs0FCghQb3NpdGlvbhISCgpsYXRpdHVkZV9p", + "YXN0aWMveG1vZGVtLnByb3RvIuUFCghQb3NpdGlvbhISCgpsYXRpdHVkZV9p", "GAEgASgPEhMKC2xvbmdpdHVkZV9pGAIgASgPEhAKCGFsdGl0dWRlGAMgASgF", "EgwKBHRpbWUYBCABKAcSNwoPbG9jYXRpb25fc291cmNlGAUgASgOMh4ubWVz", "aHRhc3RpYy5Qb3NpdGlvbi5Mb2NTb3VyY2USNwoPYWx0aXR1ZGVfc291cmNl", @@ -40,99 +40,106 @@ static MeshReflection() { "cGVlZBgPIAEoDRIUCgxncm91bmRfdHJhY2sYECABKA0SEwoLZml4X3F1YWxp", "dHkYESABKA0SEAoIZml4X3R5cGUYEiABKA0SFAoMc2F0c19pbl92aWV3GBMg", "ASgNEhEKCXNlbnNvcl9pZBgUIAEoDRITCgtuZXh0X3VwZGF0ZRgVIAEoDRIS", - "CgpzZXFfbnVtYmVyGBYgASgNIk4KCUxvY1NvdXJjZRINCglMT0NfVU5TRVQQ", - "ABIOCgpMT0NfTUFOVUFMEAESEAoMTE9DX0lOVEVSTkFMEAISEAoMTE9DX0VY", - "VEVSTkFMEAMiYgoJQWx0U291cmNlEg0KCUFMVF9VTlNFVBAAEg4KCkFMVF9N", - "QU5VQUwQARIQCgxBTFRfSU5URVJOQUwQAhIQCgxBTFRfRVhURVJOQUwQAxIS", - "Cg5BTFRfQkFST01FVFJJQxAEIsQBCgRVc2VyEgoKAmlkGAEgASgJEhEKCWxv", - "bmdfbmFtZRgCIAEoCRISCgpzaG9ydF9uYW1lGAMgASgJEhMKB21hY2FkZHIY", - "BCABKAxCAhgBEisKCGh3X21vZGVsGAUgASgOMhkubWVzaHRhc3RpYy5IYXJk", - "d2FyZU1vZGVsEhMKC2lzX2xpY2Vuc2VkGAYgASgIEjIKBHJvbGUYByABKA4y", - "JC5tZXNodGFzdGljLkNvbmZpZy5EZXZpY2VDb25maWcuUm9sZSIfCg5Sb3V0", - "ZURpc2NvdmVyeRINCgVyb3V0ZRgBIAMoByL8AgoHUm91dGluZxIzCg1yb3V0", - "ZV9yZXF1ZXN0GAEgASgLMhoubWVzaHRhc3RpYy5Sb3V0ZURpc2NvdmVyeUgA", - "EjEKC3JvdXRlX3JlcGx5GAIgASgLMhoubWVzaHRhc3RpYy5Sb3V0ZURpc2Nv", - "dmVyeUgAEjEKDGVycm9yX3JlYXNvbhgDIAEoDjIZLm1lc2h0YXN0aWMuUm91", - "dGluZy5FcnJvckgAIsoBCgVFcnJvchIICgROT05FEAASDAoITk9fUk9VVEUQ", - "ARILCgdHT1RfTkFLEAISCwoHVElNRU9VVBADEhAKDE5PX0lOVEVSRkFDRRAE", - "EhIKDk1BWF9SRVRSQU5TTUlUEAUSDgoKTk9fQ0hBTk5FTBAGEg0KCVRPT19M", - "QVJHRRAHEg8KC05PX1JFU1BPTlNFEAgSFAoQRFVUWV9DWUNMRV9MSU1JVBAJ", - "Eg8KC0JBRF9SRVFVRVNUECASEgoOTk9UX0FVVEhPUklaRUQQIUIJCgd2YXJp", - "YW50IqcBCgREYXRhEiQKB3BvcnRudW0YASABKA4yEy5tZXNodGFzdGljLlBv", - "cnROdW0SDwoHcGF5bG9hZBgCIAEoDBIVCg13YW50X3Jlc3BvbnNlGAMgASgI", - "EgwKBGRlc3QYBCABKAcSDgoGc291cmNlGAUgASgHEhIKCnJlcXVlc3RfaWQY", - "BiABKAcSEAoIcmVwbHlfaWQYByABKAcSDQoFZW1vamkYCCABKAcikwEKCFdh", - "eXBvaW50EgoKAmlkGAEgASgNEhIKCmxhdGl0dWRlX2kYAiABKA8SEwoLbG9u", - "Z2l0dWRlX2kYAyABKA8SDgoGZXhwaXJlGAQgASgNEhEKCWxvY2tlZF90bxgF", - "IAEoDRIMCgRuYW1lGAYgASgJEhMKC2Rlc2NyaXB0aW9uGAcgASgJEgwKBGlj", - "b24YCCABKAcibAoWTXF0dENsaWVudFByb3h5TWVzc2FnZRINCgV0b3BpYxgB", - "IAEoCRIOCgRkYXRhGAIgASgMSAASDgoEdGV4dBgDIAEoCUgAEhAKCHJldGFp", - "bmVkGAQgASgIQhEKD3BheWxvYWRfdmFyaWFudCLsAwoKTWVzaFBhY2tldBIM", - "CgRmcm9tGAEgASgHEgoKAnRvGAIgASgHEg8KB2NoYW5uZWwYAyABKA0SIwoH", - "ZGVjb2RlZBgEIAEoCzIQLm1lc2h0YXN0aWMuRGF0YUgAEhMKCWVuY3J5cHRl", - "ZBgFIAEoDEgAEgoKAmlkGAYgASgHEg8KB3J4X3RpbWUYByABKAcSDgoGcnhf", - "c25yGAggASgCEhEKCWhvcF9saW1pdBgJIAEoDRIQCgh3YW50X2FjaxgKIAEo", - "CBIxCghwcmlvcml0eRgLIAEoDjIfLm1lc2h0YXN0aWMuTWVzaFBhY2tldC5Q", - "cmlvcml0eRIPCgdyeF9yc3NpGAwgASgFEi8KB2RlbGF5ZWQYDSABKA4yHi5t", - "ZXNodGFzdGljLk1lc2hQYWNrZXQuRGVsYXllZCJbCghQcmlvcml0eRIJCgVV", - "TlNFVBAAEgcKA01JThABEg4KCkJBQ0tHUk9VTkQQChILCgdERUZBVUxUEEAS", - "DAoIUkVMSUFCTEUQRhIHCgNBQ0sQeBIHCgNNQVgQfyJCCgdEZWxheWVkEgwK", - "CE5PX0RFTEFZEAASFQoRREVMQVlFRF9CUk9BRENBU1QQARISCg5ERUxBWUVE", - "X0RJUkVDVBACQhEKD3BheWxvYWRfdmFyaWFudCLEAQoITm9kZUluZm8SCwoD", - "bnVtGAEgASgNEh4KBHVzZXIYAiABKAsyEC5tZXNodGFzdGljLlVzZXISJgoI", - "cG9zaXRpb24YAyABKAsyFC5tZXNodGFzdGljLlBvc2l0aW9uEgsKA3NuchgE", - "IAEoAhISCgpsYXN0X2hlYXJkGAUgASgHEjEKDmRldmljZV9tZXRyaWNzGAYg", - "ASgLMhkubWVzaHRhc3RpYy5EZXZpY2VNZXRyaWNzEg8KB2NoYW5uZWwYByAB", - "KA0iUAoKTXlOb2RlSW5mbxITCgtteV9ub2RlX251bRgBIAEoDRIUCgxyZWJv", - "b3RfY291bnQYCCABKA0SFwoPbWluX2FwcF92ZXJzaW9uGAsgASgNIsABCglM", - "b2dSZWNvcmQSDwoHbWVzc2FnZRgBIAEoCRIMCgR0aW1lGAIgASgHEg4KBnNv", - "dXJjZRgDIAEoCRIqCgVsZXZlbBgEIAEoDjIbLm1lc2h0YXN0aWMuTG9nUmVj", - "b3JkLkxldmVsIlgKBUxldmVsEgkKBVVOU0VUEAASDAoIQ1JJVElDQUwQMhIJ", - "CgVFUlJPUhAoEgsKB1dBUk5JTkcQHhIICgRJTkZPEBQSCQoFREVCVUcQChIJ", - "CgVUUkFDRRAFIlAKC1F1ZXVlU3RhdHVzEgsKA3JlcxgBIAEoBRIMCgRmcmVl", - "GAIgASgNEg4KBm1heGxlbhgDIAEoDRIWCg5tZXNoX3BhY2tldF9pZBgEIAEo", - "DSLbBAoJRnJvbVJhZGlvEgoKAmlkGAEgASgNEigKBnBhY2tldBgCIAEoCzIW", - "Lm1lc2h0YXN0aWMuTWVzaFBhY2tldEgAEikKB215X2luZm8YAyABKAsyFi5t", - "ZXNodGFzdGljLk15Tm9kZUluZm9IABIpCglub2RlX2luZm8YBCABKAsyFC5t", - "ZXNodGFzdGljLk5vZGVJbmZvSAASJAoGY29uZmlnGAUgASgLMhIubWVzaHRh", - "c3RpYy5Db25maWdIABIrCgpsb2dfcmVjb3JkGAYgASgLMhUubWVzaHRhc3Rp", - "Yy5Mb2dSZWNvcmRIABIcChJjb25maWdfY29tcGxldGVfaWQYByABKA1IABIS", - "CghyZWJvb3RlZBgIIAEoCEgAEjAKDG1vZHVsZUNvbmZpZxgJIAEoCzIYLm1l", - "c2h0YXN0aWMuTW9kdWxlQ29uZmlnSAASJgoHY2hhbm5lbBgKIAEoCzITLm1l", - "c2h0YXN0aWMuQ2hhbm5lbEgAEi4KC3F1ZXVlU3RhdHVzGAsgASgLMhcubWVz", - "aHRhc3RpYy5RdWV1ZVN0YXR1c0gAEioKDHhtb2RlbVBhY2tldBgMIAEoCzIS", - "Lm1lc2h0YXN0aWMuWE1vZGVtSAASLgoIbWV0YWRhdGEYDSABKAsyGi5tZXNo", - "dGFzdGljLkRldmljZU1ldGFkYXRhSAASRAoWbXF0dENsaWVudFByb3h5TWVz", - "c2FnZRgOIAEoCzIiLm1lc2h0YXN0aWMuTXF0dENsaWVudFByb3h5TWVzc2Fn", - "ZUgAQhEKD3BheWxvYWRfdmFyaWFudCLoAQoHVG9SYWRpbxIoCgZwYWNrZXQY", - "ASABKAsyFi5tZXNodGFzdGljLk1lc2hQYWNrZXRIABIYCg53YW50X2NvbmZp", - "Z19pZBgDIAEoDUgAEhQKCmRpc2Nvbm5lY3QYBCABKAhIABIqCgx4bW9kZW1Q", - "YWNrZXQYBSABKAsyEi5tZXNodGFzdGljLlhNb2RlbUgAEkQKFm1xdHRDbGll", - "bnRQcm94eU1lc3NhZ2UYBiABKAsyIi5tZXNodGFzdGljLk1xdHRDbGllbnRQ", - "cm94eU1lc3NhZ2VIAEIRCg9wYXlsb2FkX3ZhcmlhbnQiQAoKQ29tcHJlc3Nl", - "ZBIkCgdwb3J0bnVtGAEgASgOMhMubWVzaHRhc3RpYy5Qb3J0TnVtEgwKBGRh", - "dGEYAiABKAwihwEKDE5laWdoYm9ySW5mbxIPCgdub2RlX2lkGAEgASgNEhcK", - "D2xhc3Rfc2VudF9ieV9pZBgCIAEoDRIkChxub2RlX2Jyb2FkY2FzdF9pbnRl", - "cnZhbF9zZWNzGAMgASgNEicKCW5laWdoYm9ycxgEIAMoCzIULm1lc2h0YXN0", - "aWMuTmVpZ2hib3IiZAoITmVpZ2hib3ISDwoHbm9kZV9pZBgBIAEoDRILCgNz", - "bnIYAiABKAISFAoMbGFzdF9yeF90aW1lGAMgASgHEiQKHG5vZGVfYnJvYWRj", - "YXN0X2ludGVydmFsX3NlY3MYBCABKA0irQIKDkRldmljZU1ldGFkYXRhEhgK", - "EGZpcm13YXJlX3ZlcnNpb24YASABKAkSHAoUZGV2aWNlX3N0YXRlX3ZlcnNp", - "b24YAiABKA0SEwoLY2FuU2h1dGRvd24YAyABKAgSDwoHaGFzV2lmaRgEIAEo", - "CBIUCgxoYXNCbHVldG9vdGgYBSABKAgSEwoLaGFzRXRoZXJuZXQYBiABKAgS", - "MgoEcm9sZRgHIAEoDjIkLm1lc2h0YXN0aWMuQ29uZmlnLkRldmljZUNvbmZp", - "Zy5Sb2xlEhYKDnBvc2l0aW9uX2ZsYWdzGAggASgNEisKCGh3X21vZGVsGAkg", - "ASgOMhkubWVzaHRhc3RpYy5IYXJkd2FyZU1vZGVsEhkKEWhhc1JlbW90ZUhh", - "cmR3YXJlGAogASgIKsAGCg1IYXJkd2FyZU1vZGVsEgkKBVVOU0VUEAASDAoI", - "VExPUkFfVjIQARIMCghUTE9SQV9WMRACEhIKDlRMT1JBX1YyXzFfMVA2EAMS", - "CQoFVEJFQU0QBBIPCgtIRUxURUNfVjJfMBAFEg4KClRCRUFNX1YwUDcQBhIK", - "CgZUX0VDSE8QBxIQCgxUTE9SQV9WMV8xUDMQCBILCgdSQUs0NjMxEAkSDwoL", - "SEVMVEVDX1YyXzEQChINCglIRUxURUNfVjEQCxIYChRMSUxZR09fVEJFQU1f", - "UzNfQ09SRRAMEgwKCFJBSzExMjAwEA0SCwoHTkFOT19HMRAOEhIKDlRMT1JB", - "X1YyXzFfMVA4EA8SDwoLVExPUkFfVDNfUzMQEBIUChBOQU5PX0cxX0VYUExP", - "UkVSEBESEQoNTkFOT19HMl9VTFRSQRASEg0KCUxPUkFfVFlQRRATEg4KClNU", - "QVRJT05fRzEQGRIMCghSQUsxMTMxMBAaEhQKEFNFTlNFTE9SQV9SUDIwNDAQ", - "GxIQCgxTRU5TRUxPUkFfUzMQHBIRCg1MT1JBX1JFTEFZX1YxECASDgoKTlJG", + "CgpzZXFfbnVtYmVyGBYgASgNEhYKDnByZWNpc2lvbl9iaXRzGBcgASgNIk4K", + "CUxvY1NvdXJjZRINCglMT0NfVU5TRVQQABIOCgpMT0NfTUFOVUFMEAESEAoM", + "TE9DX0lOVEVSTkFMEAISEAoMTE9DX0VYVEVSTkFMEAMiYgoJQWx0U291cmNl", + "Eg0KCUFMVF9VTlNFVBAAEg4KCkFMVF9NQU5VQUwQARIQCgxBTFRfSU5URVJO", + "QUwQAhIQCgxBTFRfRVhURVJOQUwQAxISCg5BTFRfQkFST01FVFJJQxAEIsQB", + "CgRVc2VyEgoKAmlkGAEgASgJEhEKCWxvbmdfbmFtZRgCIAEoCRISCgpzaG9y", + "dF9uYW1lGAMgASgJEhMKB21hY2FkZHIYBCABKAxCAhgBEisKCGh3X21vZGVs", + "GAUgASgOMhkubWVzaHRhc3RpYy5IYXJkd2FyZU1vZGVsEhMKC2lzX2xpY2Vu", + "c2VkGAYgASgIEjIKBHJvbGUYByABKA4yJC5tZXNodGFzdGljLkNvbmZpZy5E", + "ZXZpY2VDb25maWcuUm9sZSIfCg5Sb3V0ZURpc2NvdmVyeRINCgVyb3V0ZRgB", + "IAMoByL8AgoHUm91dGluZxIzCg1yb3V0ZV9yZXF1ZXN0GAEgASgLMhoubWVz", + "aHRhc3RpYy5Sb3V0ZURpc2NvdmVyeUgAEjEKC3JvdXRlX3JlcGx5GAIgASgL", + "MhoubWVzaHRhc3RpYy5Sb3V0ZURpc2NvdmVyeUgAEjEKDGVycm9yX3JlYXNv", + "bhgDIAEoDjIZLm1lc2h0YXN0aWMuUm91dGluZy5FcnJvckgAIsoBCgVFcnJv", + "chIICgROT05FEAASDAoITk9fUk9VVEUQARILCgdHT1RfTkFLEAISCwoHVElN", + "RU9VVBADEhAKDE5PX0lOVEVSRkFDRRAEEhIKDk1BWF9SRVRSQU5TTUlUEAUS", + "DgoKTk9fQ0hBTk5FTBAGEg0KCVRPT19MQVJHRRAHEg8KC05PX1JFU1BPTlNF", + "EAgSFAoQRFVUWV9DWUNMRV9MSU1JVBAJEg8KC0JBRF9SRVFVRVNUECASEgoO", + "Tk9UX0FVVEhPUklaRUQQIUIJCgd2YXJpYW50IqcBCgREYXRhEiQKB3BvcnRu", + "dW0YASABKA4yEy5tZXNodGFzdGljLlBvcnROdW0SDwoHcGF5bG9hZBgCIAEo", + "DBIVCg13YW50X3Jlc3BvbnNlGAMgASgIEgwKBGRlc3QYBCABKAcSDgoGc291", + "cmNlGAUgASgHEhIKCnJlcXVlc3RfaWQYBiABKAcSEAoIcmVwbHlfaWQYByAB", + "KAcSDQoFZW1vamkYCCABKAcikwEKCFdheXBvaW50EgoKAmlkGAEgASgNEhIK", + "CmxhdGl0dWRlX2kYAiABKA8SEwoLbG9uZ2l0dWRlX2kYAyABKA8SDgoGZXhw", + "aXJlGAQgASgNEhEKCWxvY2tlZF90bxgFIAEoDRIMCgRuYW1lGAYgASgJEhMK", + "C2Rlc2NyaXB0aW9uGAcgASgJEgwKBGljb24YCCABKAcibAoWTXF0dENsaWVu", + "dFByb3h5TWVzc2FnZRINCgV0b3BpYxgBIAEoCRIOCgRkYXRhGAIgASgMSAAS", + "DgoEdGV4dBgDIAEoCUgAEhAKCHJldGFpbmVkGAQgASgIQhEKD3BheWxvYWRf", + "dmFyaWFudCKVBAoKTWVzaFBhY2tldBIMCgRmcm9tGAEgASgHEgoKAnRvGAIg", + "ASgHEg8KB2NoYW5uZWwYAyABKA0SIwoHZGVjb2RlZBgEIAEoCzIQLm1lc2h0", + "YXN0aWMuRGF0YUgAEhMKCWVuY3J5cHRlZBgFIAEoDEgAEgoKAmlkGAYgASgH", + "Eg8KB3J4X3RpbWUYByABKAcSDgoGcnhfc25yGAggASgCEhEKCWhvcF9saW1p", + "dBgJIAEoDRIQCgh3YW50X2FjaxgKIAEoCBIxCghwcmlvcml0eRgLIAEoDjIf", + "Lm1lc2h0YXN0aWMuTWVzaFBhY2tldC5Qcmlvcml0eRIPCgdyeF9yc3NpGAwg", + "ASgFEjMKB2RlbGF5ZWQYDSABKA4yHi5tZXNodGFzdGljLk1lc2hQYWNrZXQu", + "RGVsYXllZEICGAESEAoIdmlhX21xdHQYDiABKAgSEQoJaG9wX3N0YXJ0GA8g", + "ASgNIlsKCFByaW9yaXR5EgkKBVVOU0VUEAASBwoDTUlOEAESDgoKQkFDS0dS", + "T1VORBAKEgsKB0RFRkFVTFQQQBIMCghSRUxJQUJMRRBGEgcKA0FDSxB4EgcK", + "A01BWBB/IkIKB0RlbGF5ZWQSDAoITk9fREVMQVkQABIVChFERUxBWUVEX0JS", + "T0FEQ0FTVBABEhIKDkRFTEFZRURfRElSRUNUEAJCEQoPcGF5bG9hZF92YXJp", + "YW50Iv4BCghOb2RlSW5mbxILCgNudW0YASABKA0SHgoEdXNlchgCIAEoCzIQ", + "Lm1lc2h0YXN0aWMuVXNlchImCghwb3NpdGlvbhgDIAEoCzIULm1lc2h0YXN0", + "aWMuUG9zaXRpb24SCwoDc25yGAQgASgCEhIKCmxhc3RfaGVhcmQYBSABKAcS", + "MQoOZGV2aWNlX21ldHJpY3MYBiABKAsyGS5tZXNodGFzdGljLkRldmljZU1l", + "dHJpY3MSDwoHY2hhbm5lbBgHIAEoDRIQCgh2aWFfbXF0dBgIIAEoCBIRCglo", + "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", @@ -141,37 +148,41 @@ static MeshReflection() { "LhIMCghSUElfUElDTxAvEhsKF0hFTFRFQ19XSVJFTEVTU19UUkFDS0VSEDAS", "GQoVSEVMVEVDX1dJUkVMRVNTX1BBUEVSEDESCgoGVF9ERUNLEDISDgoKVF9X", "QVRDSF9TMxAzEhEKDVBJQ09NUFVURVJfUzMQNBIPCgtIRUxURUNfSFQ2MhA1", - "EhIKDkVCWVRFX0VTUDMyX1MzEDYSDwoKUFJJVkFURV9IVxD/ASosCglDb25z", - "dGFudHMSCAoEWkVSTxAAEhUKEERBVEFfUEFZTE9BRF9MRU4Q7QEq7gEKEUNy", - "aXRpY2FsRXJyb3JDb2RlEggKBE5PTkUQABIPCgtUWF9XQVRDSERPRxABEhQK", - "EFNMRUVQX0VOVEVSX1dBSVQQAhIMCghOT19SQURJTxADEg8KC1VOU1BFQ0lG", - "SUVEEAQSFQoRVUJMT1hfVU5JVF9GQUlMRUQQBRINCglOT19BWFAxOTIQBhIZ", - "ChVJTlZBTElEX1JBRElPX1NFVFRJTkcQBxITCg9UUkFOU01JVF9GQUlMRUQQ", - "CBIMCghCUk9XTk9VVBAJEhIKDlNYMTI2Ml9GQUlMVVJFEAoSEQoNUkFESU9f", - "U1BJX0JVRxALQl8KE2NvbS5nZWVrc3ZpbGxlLm1lc2hCCk1lc2hQcm90b3Na", - "ImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFz", - "dGljLlByb3RvYnVmc7oCAGIGcHJvdG8z")); + "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[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Position), global::Meshtastic.Protobufs.Position.Parser, new[]{ "LatitudeI", "LongitudeI", "Altitude", "Time", "LocationSource", "AltitudeSource", "Timestamp", "TimestampMillisAdjust", "AltitudeHae", "AltitudeGeoidalSeparation", "PDOP", "HDOP", "VDOP", "GpsAccuracy", "GroundSpeed", "GroundTrack", "FixQuality", "FixType", "SatsInView", "SensorId", "NextUpdate", "SeqNumber" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Position.Types.LocSource), typeof(global::Meshtastic.Protobufs.Position.Types.AltSource) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Position), global::Meshtastic.Protobufs.Position.Parser, new[]{ "LatitudeI", "LongitudeI", "Altitude", "Time", "LocationSource", "AltitudeSource", "Timestamp", "TimestampMillisAdjust", "AltitudeHae", "AltitudeGeoidalSeparation", "PDOP", "HDOP", "VDOP", "GpsAccuracy", "GroundSpeed", "GroundTrack", "FixQuality", "FixType", "SatsInView", "SensorId", "NextUpdate", "SeqNumber", "PrecisionBits" }, null, new[]{ typeof(global::Meshtastic.Protobufs.Position.Types.LocSource), typeof(global::Meshtastic.Protobufs.Position.Types.AltSource) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.User), global::Meshtastic.Protobufs.User.Parser, new[]{ "Id", "LongName", "ShortName", "Macaddr", "HwModel", "IsLicensed", "Role" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.RouteDiscovery), global::Meshtastic.Protobufs.RouteDiscovery.Parser, new[]{ "Route" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Routing), global::Meshtastic.Protobufs.Routing.Parser, new[]{ "RouteRequest", "RouteReply", "ErrorReason" }, new[]{ "Variant" }, new[]{ typeof(global::Meshtastic.Protobufs.Routing.Types.Error) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Data), global::Meshtastic.Protobufs.Data.Parser, new[]{ "Portnum", "Payload", "WantResponse", "Dest", "Source", "RequestId", "ReplyId", "Emoji" }, null, null, null, null), 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" }, 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" }, null, 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", "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 @@ -310,6 +321,21 @@ public enum HardwareModel { [pbr::OriginalName("SENSELORA_S3")] SenseloraS3 = 28, /// /// + /// Canary Radio Company - CanaryOne: https://canaryradio.io/products/canaryone + /// + [pbr::OriginalName("CANARYONE")] Canaryone = 29, + /// + /// + /// Waveshare RP2040 LoRa - https://www.waveshare.com/rp2040-lora.htm + /// + [pbr::OriginalName("RP2040_LORA")] Rp2040Lora = 30, + /// + /// + /// B&Q Consulting Station G2: https://wiki.uniteng.com/en/meshtastic/station-g2 + /// + [pbr::OriginalName("STATION_G2")] StationG2 = 31, + /// + /// /// --------------------------------------------------------------------------- /// Less common/prototype boards listed here (needs one more byte over the air) /// --------------------------------------------------------------------------- @@ -393,6 +419,7 @@ public enum HardwareModel { /// /// /// Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT + /// Newer V1.1, version is written on the PCB near the display. /// [pbr::OriginalName("HELTEC_WIRELESS_TRACKER")] HeltecWirelessTracker = 48, /// @@ -427,6 +454,33 @@ public enum HardwareModel { [pbr::OriginalName("EBYTE_ESP32_S3")] EbyteEsp32S3 = 54, /// /// + /// Waveshare ESP32-S3-PICO with PICO LoRa HAT and 2.9inch e-Ink + /// + [pbr::OriginalName("ESP32_S3_PICO")] Esp32S3Pico = 55, + /// + /// + /// CircuitMess Chatter 2 LLCC68 Lora Module and ESP32 Wroom + /// Lora module can be swapped out for a Heltec RA-62 which is "almost" pin compatible + /// with one cut and one jumper Meshtastic works + /// + [pbr::OriginalName("CHATTER_2")] Chatter2 = 56, + /// + /// + /// Heltec Wireless Paper, With ESP32-S3 CPU and E-Ink display + /// Older "V1.0" Variant, has no "version sticker" + /// E-Ink model is DEPG0213BNS800 + /// Tab on the screen protector is RED + /// Flex connector marking is FPC-7528B + /// + [pbr::OriginalName("HELTEC_WIRELESS_PAPER_V1_0")] HeltecWirelessPaperV10 = 57, + /// + /// + /// Heltec Wireless Tracker with ESP32-S3 CPU, built-in GPS, and TFT + /// Older "V1.0" Variant + /// + [pbr::OriginalName("HELTEC_WIRELESS_TRACKER_V1_0")] HeltecWirelessTrackerV10 = 58, + /// + /// /// ------------------------------------------------------------------------------------------------------------------------------------------ /// Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits. /// ------------------------------------------------------------------------------------------------------------------------------------------ @@ -589,6 +643,7 @@ public Position(Position other) : this() { sensorId_ = other.sensorId_; nextUpdate_ = other.nextUpdate_; seqNumber_ = other.seqNumber_; + precisionBits_ = other.precisionBits_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -969,6 +1024,22 @@ public uint SeqNumber { } } + /// Field number for the "precision_bits" field. + public const int PrecisionBitsFieldNumber = 23; + private uint precisionBits_; + /// + /// + /// Indicates the bits of precision set by the sending node + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint PrecisionBits { + get { return precisionBits_; } + set { + precisionBits_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1006,6 +1077,7 @@ public bool Equals(Position other) { if (SensorId != other.SensorId) return false; if (NextUpdate != other.NextUpdate) return false; if (SeqNumber != other.SeqNumber) return false; + if (PrecisionBits != other.PrecisionBits) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1035,6 +1107,7 @@ public override int GetHashCode() { if (SensorId != 0) hash ^= SensorId.GetHashCode(); if (NextUpdate != 0) hash ^= NextUpdate.GetHashCode(); if (SeqNumber != 0) hash ^= SeqNumber.GetHashCode(); + if (PrecisionBits != 0) hash ^= PrecisionBits.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1141,6 +1214,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(176, 1); output.WriteUInt32(SeqNumber); } + if (PrecisionBits != 0) { + output.WriteRawTag(184, 1); + output.WriteUInt32(PrecisionBits); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1239,6 +1316,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(176, 1); output.WriteUInt32(SeqNumber); } + if (PrecisionBits != 0) { + output.WriteRawTag(184, 1); + output.WriteUInt32(PrecisionBits); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1315,6 +1396,9 @@ public int CalculateSize() { if (SeqNumber != 0) { size += 2 + pb::CodedOutputStream.ComputeUInt32Size(SeqNumber); } + if (PrecisionBits != 0) { + size += 2 + pb::CodedOutputStream.ComputeUInt32Size(PrecisionBits); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1393,6 +1477,9 @@ public void MergeFrom(Position other) { if (other.SeqNumber != 0) { SeqNumber = other.SeqNumber; } + if (other.PrecisionBits != 0) { + PrecisionBits = other.PrecisionBits; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1496,6 +1583,10 @@ public void MergeFrom(pb::CodedInputStream input) { SeqNumber = input.ReadUInt32(); break; } + case 184: { + PrecisionBits = input.ReadUInt32(); + break; + } } } #endif @@ -1599,6 +1690,10 @@ public void MergeFrom(pb::CodedInputStream input) { SeqNumber = input.ReadUInt32(); break; } + case 184: { + PrecisionBits = input.ReadUInt32(); + break; + } } } } @@ -4143,6 +4238,8 @@ public MeshPacket(MeshPacket other) : this() { priority_ = other.priority_; rxRssi_ = other.rxRssi_; delayed_ = other.delayed_; + viaMqtt_ = other.viaMqtt_; + hopStart_ = other.hopStart_; switch (other.PayloadVariantCase) { case PayloadVariantOneofCase.Decoded: Decoded = other.Decoded.Clone(); @@ -4169,7 +4266,6 @@ public MeshPacket Clone() { /// The sending node number. /// Note: Our crypto implementation uses this field as well. /// See [crypto](/docs/overview/encryption) for details. - /// FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4185,8 +4281,7 @@ public uint From { private uint to_; /// /// - /// The (immediatSee Priority description for more details.y should be fixed32 instead, this encoding only - /// hurts the ble link though. + /// The (immediate) destination for this packet /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4264,8 +4359,6 @@ public uint Channel { /// any ACK or the completion of a mesh broadcast flood). /// Note: Our crypto implementation uses this id as well. /// See [crypto](/docs/overview/encryption) for details. - /// FIXME - really should be fixed32 instead, this encoding only - /// hurts the ble link though. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4396,6 +4489,7 @@ public int RxRssi { /// /// Describe if this message is delayed /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public global::Meshtastic.Protobufs.MeshPacket.Types.Delayed Delayed { @@ -4405,6 +4499,39 @@ public int RxRssi { } } + /// Field number for the "via_mqtt" field. + public const int ViaMqttFieldNumber = 14; + private bool viaMqtt_; + /// + /// + /// Describes whether this packet passed via MQTT somewhere along the path it currently took. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool ViaMqtt { + get { return viaMqtt_; } + set { + viaMqtt_ = value; + } + } + + /// Field number for the "hop_start" field. + public const int HopStartFieldNumber = 15; + private uint hopStart_; + /// + /// + /// Hop limit with which the original packet started. Sent via LoRa using three bits in the unencrypted header. + /// When receiving a packet, the difference between hop_start and hop_limit gives how many hops it traveled. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint HopStart { + get { return hopStart_; } + set { + hopStart_ = value; + } + } + private object payloadVariant_; /// Enum of possible cases for the "payload_variant" oneof. public enum PayloadVariantOneofCase { @@ -4454,6 +4581,8 @@ public bool Equals(MeshPacket other) { if (Priority != other.Priority) return false; if (RxRssi != other.RxRssi) return false; if (Delayed != other.Delayed) return false; + if (ViaMqtt != other.ViaMqtt) return false; + if (HopStart != other.HopStart) return false; if (PayloadVariantCase != other.PayloadVariantCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4475,6 +4604,8 @@ public override int GetHashCode() { if (Priority != global::Meshtastic.Protobufs.MeshPacket.Types.Priority.Unset) hash ^= Priority.GetHashCode(); if (RxRssi != 0) hash ^= RxRssi.GetHashCode(); if (Delayed != global::Meshtastic.Protobufs.MeshPacket.Types.Delayed.NoDelay) hash ^= Delayed.GetHashCode(); + if (ViaMqtt != false) hash ^= ViaMqtt.GetHashCode(); + if (HopStart != 0) hash ^= HopStart.GetHashCode(); hash ^= (int) payloadVariantCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -4546,6 +4677,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(104); output.WriteEnum((int) Delayed); } + if (ViaMqtt != false) { + output.WriteRawTag(112); + output.WriteBool(ViaMqtt); + } + if (HopStart != 0) { + output.WriteRawTag(120); + output.WriteUInt32(HopStart); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4608,6 +4747,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(104); output.WriteEnum((int) Delayed); } + if (ViaMqtt != false) { + output.WriteRawTag(112); + output.WriteBool(ViaMqtt); + } + if (HopStart != 0) { + output.WriteRawTag(120); + output.WriteUInt32(HopStart); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4657,6 +4804,12 @@ public int CalculateSize() { if (Delayed != global::Meshtastic.Protobufs.MeshPacket.Types.Delayed.NoDelay) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Delayed); } + if (ViaMqtt != false) { + size += 1 + 1; + } + if (HopStart != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HopStart); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4702,6 +4855,12 @@ public void MergeFrom(MeshPacket other) { if (other.Delayed != global::Meshtastic.Protobufs.MeshPacket.Types.Delayed.NoDelay) { Delayed = other.Delayed; } + if (other.ViaMqtt != false) { + ViaMqtt = other.ViaMqtt; + } + if (other.HopStart != 0) { + HopStart = other.HopStart; + } switch (other.PayloadVariantCase) { case PayloadVariantOneofCase.Decoded: if (Decoded == null) { @@ -4786,6 +4945,14 @@ public void MergeFrom(pb::CodedInputStream input) { Delayed = (global::Meshtastic.Protobufs.MeshPacket.Types.Delayed) input.ReadEnum(); break; } + case 112: { + ViaMqtt = input.ReadBool(); + break; + } + case 120: { + HopStart = input.ReadUInt32(); + break; + } } } #endif @@ -4858,6 +5025,14 @@ public void MergeFrom(pb::CodedInputStream input) { Delayed = (global::Meshtastic.Protobufs.MeshPacket.Types.Delayed) input.ReadEnum(); break; } + case 112: { + ViaMqtt = input.ReadBool(); + break; + } + case 120: { + HopStart = input.ReadUInt32(); + break; + } } } } @@ -5017,6 +5192,9 @@ public NodeInfo(NodeInfo other) : this() { lastHeard_ = other.lastHeard_; deviceMetrics_ = other.deviceMetrics_ != null ? other.deviceMetrics_.Clone() : null; channel_ = other.channel_; + viaMqtt_ = other.viaMqtt_; + hopsAway_ = other.hopsAway_; + isFavorite_ = other.isFavorite_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5140,6 +5318,55 @@ public uint Channel { } } + /// 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; + } + } + + /// 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) { @@ -5162,6 +5389,9 @@ public bool Equals(NodeInfo other) { 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; + if (IsFavorite != other.IsFavorite) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5176,6 +5406,9 @@ public override int GetHashCode() { 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 (IsFavorite != false) hash ^= IsFavorite.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5222,6 +5455,18 @@ public void WriteTo(pb::CodedOutputStream output) { 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 (IsFavorite != false) { + output.WriteRawTag(80); + output.WriteBool(IsFavorite); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5260,6 +5505,18 @@ public void WriteTo(pb::CodedOutputStream output) { 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 (IsFavorite != false) { + output.WriteRawTag(80); + output.WriteBool(IsFavorite); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5291,6 +5548,15 @@ public int CalculateSize() { 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 (IsFavorite != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5333,6 +5599,15 @@ public void MergeFrom(NodeInfo other) { if (other.Channel != 0) { Channel = other.Channel; } + if (other.ViaMqtt != false) { + ViaMqtt = other.ViaMqtt; + } + if (other.HopsAway != 0) { + HopsAway = other.HopsAway; + } + if (other.IsFavorite != false) { + IsFavorite = other.IsFavorite; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5385,6 +5660,18 @@ public void MergeFrom(pb::CodedInputStream input) { Channel = input.ReadUInt32(); break; } + case 64: { + ViaMqtt = input.ReadBool(); + break; + } + case 72: { + HopsAway = input.ReadUInt32(); + break; + } + case 80: { + IsFavorite = input.ReadBool(); + break; + } } } #endif @@ -5437,6 +5724,18 @@ public void MergeFrom(pb::CodedInputStream input) { Channel = input.ReadUInt32(); break; } + case 64: { + ViaMqtt = input.ReadBool(); + break; + } + case 72: { + HopsAway = input.ReadUInt32(); + break; + } + case 80: { + IsFavorite = input.ReadBool(); + break; + } } } } @@ -7420,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); @@ -7516,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 { @@ -7525,6 +7843,7 @@ public enum PayloadVariantOneofCase { Disconnect = 4, XmodemPacket = 5, MqttClientProxyMessage = 6, + Heartbeat = 7, } private PayloadVariantOneofCase payloadVariantCase_ = PayloadVariantOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7560,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); } @@ -7573,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(); @@ -7612,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); } @@ -7642,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); } @@ -7667,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(); } @@ -7704,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); @@ -7756,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 @@ -7806,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; + } } } } @@ -9248,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 748840c..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( - "ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKugDCgdQ", + "ChltZXNodGFzdGljL3BvcnRudW1zLnByb3RvEgptZXNodGFzdGljKo0ECgdQ", "b3J0TnVtEg8KC1VOS05PV05fQVBQEAASFAoQVEVYVF9NRVNTQUdFX0FQUBAB", "EhcKE1JFTU9URV9IQVJEV0FSRV9BUFAQAhIQCgxQT1NJVElPTl9BUFAQAxIQ", "CgxOT0RFSU5GT19BUFAQBBIPCgtST1VUSU5HX0FQUBAFEg0KCUFETUlOX0FQ", @@ -34,11 +34,11 @@ static PortnumsReflection() { "WENPVU5URVJfQVBQECISDgoKU0VSSUFMX0FQUBBAEhUKEVNUT1JFX0ZPUldB", "UkRfQVBQEEESEgoOUkFOR0VfVEVTVF9BUFAQQhIRCg1URUxFTUVUUllfQVBQ", "EEMSCwoHWlBTX0FQUBBEEhEKDVNJTVVMQVRPUl9BUFAQRRISCg5UUkFDRVJP", - "VVRFX0FQUBBGEhQKEE5FSUdIQk9SSU5GT19BUFAQRxIQCgtQUklWQVRFX0FQ", - "UBCAAhITCg5BVEFLX0ZPUldBUkRFUhCBAhIICgNNQVgQ/wNCXQoTY29tLmdl", - "ZWtzdmlsbGUubWVzaEIIUG9ydG51bXNaImdpdGh1Yi5jb20vbWVzaHRhc3Rp", - "Yy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJv", - "dG8z")); + "VVRFX0FQUBBGEhQKEE5FSUdIQk9SSU5GT19BUFAQRxIPCgtBVEFLX1BMVUdJ", + "ThBIEhIKDk1BUF9SRVBPUlRfQVBQEEkSEAoLUFJJVkFURV9BUFAQgAISEwoO", + "QVRBS19GT1JXQVJERVIQgQISCAoDTUFYEP8DQl0KE2NvbS5nZWVrc3ZpbGxl", + "Lm1lc2hCCFBvcnRudW1zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2Vu", + "ZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.PortNum), }, null, null)); @@ -89,28 +89,28 @@ public enum PortNum { /// /// /// The built-in position messaging app. - /// Payload is a [Position](/docs/developers/protobufs/api#position) message + /// Payload is a Position message. /// ENCODING: Protobuf /// [pbr::OriginalName("POSITION_APP")] PositionApp = 3, /// /// /// The built-in user info app. - /// Payload is a [User](/docs/developers/protobufs/api#user) message + /// Payload is a User message. /// ENCODING: Protobuf /// [pbr::OriginalName("NODEINFO_APP")] NodeinfoApp = 4, /// /// /// Protocol control packets for mesh protocol use. - /// Payload is a [Routing](/docs/developers/protobufs/api#routing) message + /// Payload is a Routing message. /// ENCODING: Protobuf /// [pbr::OriginalName("ROUTING_APP")] RoutingApp = 5, /// /// /// Admin control packets. - /// Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message + /// Payload is a AdminMessage message. /// ENCODING: Protobuf /// [pbr::OriginalName("ADMIN_APP")] AdminApp = 6, @@ -126,7 +126,7 @@ public enum PortNum { /// /// /// Waypoint payloads. - /// Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message + /// Payload is a Waypoint message. /// ENCODING: Protobuf /// [pbr::OriginalName("WAYPOINT_APP")] WaypointApp = 8, @@ -227,6 +227,17 @@ public enum PortNum { [pbr::OriginalName("NEIGHBORINFO_APP")] NeighborinfoApp = 71, /// /// + /// ATAK Plugin + /// Portnum for payloads from the official Meshtastic ATAK plugin + /// + [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/Meshtastic/Generated/Storeforward.cs b/Meshtastic/Generated/Storeforward.cs index 0466782..12d16d4 100644 --- a/Meshtastic/Generated/Storeforward.cs +++ b/Meshtastic/Generated/Storeforward.cs @@ -24,34 +24,35 @@ public static partial class StoreforwardReflection { static StoreforwardReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "Ch1tZXNodGFzdGljL3N0b3JlZm9yd2FyZC5wcm90bxIKbWVzaHRhc3RpYyLq", - "BgoPU3RvcmVBbmRGb3J3YXJkEjcKAnJyGAEgASgOMisubWVzaHRhc3RpYy5T", + "Ch1tZXNodGFzdGljL3N0b3JlZm9yd2FyZC5wcm90bxIKbWVzaHRhc3RpYyKc", + "BwoPU3RvcmVBbmRGb3J3YXJkEjcKAnJyGAEgASgOMisubWVzaHRhc3RpYy5T", "dG9yZUFuZEZvcndhcmQuUmVxdWVzdFJlc3BvbnNlEjcKBXN0YXRzGAIgASgL", "MiYubWVzaHRhc3RpYy5TdG9yZUFuZEZvcndhcmQuU3RhdGlzdGljc0gAEjYK", "B2hpc3RvcnkYAyABKAsyIy5tZXNodGFzdGljLlN0b3JlQW5kRm9yd2FyZC5I", "aXN0b3J5SAASOgoJaGVhcnRiZWF0GAQgASgLMiUubWVzaHRhc3RpYy5TdG9y", - "ZUFuZEZvcndhcmQuSGVhcnRiZWF0SAASDwoFZW1wdHkYBSABKAhIABrNAQoK", - "U3RhdGlzdGljcxIWCg5tZXNzYWdlc190b3RhbBgBIAEoDRIWCg5tZXNzYWdl", - "c19zYXZlZBgCIAEoDRIUCgxtZXNzYWdlc19tYXgYAyABKA0SDwoHdXBfdGlt", - "ZRgEIAEoDRIQCghyZXF1ZXN0cxgFIAEoDRIYChByZXF1ZXN0c19oaXN0b3J5", - "GAYgASgNEhEKCWhlYXJ0YmVhdBgHIAEoCBISCgpyZXR1cm5fbWF4GAggASgN", - "EhUKDXJldHVybl93aW5kb3cYCSABKA0aSQoHSGlzdG9yeRIYChBoaXN0b3J5", - "X21lc3NhZ2VzGAEgASgNEg4KBndpbmRvdxgCIAEoDRIUCgxsYXN0X3JlcXVl", - "c3QYAyABKA0aLgoJSGVhcnRiZWF0Eg4KBnBlcmlvZBgBIAEoDRIRCglzZWNv", - "bmRhcnkYAiABKA0iiQIKD1JlcXVlc3RSZXNwb25zZRIJCgVVTlNFVBAAEhAK", - "DFJPVVRFUl9FUlJPUhABEhQKEFJPVVRFUl9IRUFSVEJFQVQQAhIPCgtST1VU", - "RVJfUElORxADEg8KC1JPVVRFUl9QT05HEAQSDwoLUk9VVEVSX0JVU1kQBRIS", - "Cg5ST1VURVJfSElTVE9SWRAGEhAKDFJPVVRFUl9TVEFUUxAHEhAKDENMSUVO", - "VF9FUlJPUhBAEhIKDkNMSUVOVF9ISVNUT1JZEEESEAoMQ0xJRU5UX1NUQVRT", - "EEISDwoLQ0xJRU5UX1BJTkcQQxIPCgtDTElFTlRfUE9ORxBEEhAKDENMSUVO", - "VF9BQk9SVBBqQgkKB3ZhcmlhbnRCagoTY29tLmdlZWtzdmlsbGUubWVzaEIV", - "U3RvcmVBbmRGb3J3YXJkUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMv", - "Z28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3Rv", - "Mw==")); + "ZUFuZEZvcndhcmQuSGVhcnRiZWF0SAASDgoEdGV4dBgFIAEoDEgAGs0BCgpT", + "dGF0aXN0aWNzEhYKDm1lc3NhZ2VzX3RvdGFsGAEgASgNEhYKDm1lc3NhZ2Vz", + "X3NhdmVkGAIgASgNEhQKDG1lc3NhZ2VzX21heBgDIAEoDRIPCgd1cF90aW1l", + "GAQgASgNEhAKCHJlcXVlc3RzGAUgASgNEhgKEHJlcXVlc3RzX2hpc3RvcnkY", + "BiABKA0SEQoJaGVhcnRiZWF0GAcgASgIEhIKCnJldHVybl9tYXgYCCABKA0S", + "FQoNcmV0dXJuX3dpbmRvdxgJIAEoDRpJCgdIaXN0b3J5EhgKEGhpc3Rvcnlf", + "bWVzc2FnZXMYASABKA0SDgoGd2luZG93GAIgASgNEhQKDGxhc3RfcmVxdWVz", + "dBgDIAEoDRouCglIZWFydGJlYXQSDgoGcGVyaW9kGAEgASgNEhEKCXNlY29u", + "ZGFyeRgCIAEoDSK8AgoPUmVxdWVzdFJlc3BvbnNlEgkKBVVOU0VUEAASEAoM", + "Uk9VVEVSX0VSUk9SEAESFAoQUk9VVEVSX0hFQVJUQkVBVBACEg8KC1JPVVRF", + "Ul9QSU5HEAMSDwoLUk9VVEVSX1BPTkcQBBIPCgtST1VURVJfQlVTWRAFEhIK", + "DlJPVVRFUl9ISVNUT1JZEAYSEAoMUk9VVEVSX1NUQVRTEAcSFgoSUk9VVEVS", + "X1RFWFRfRElSRUNUEAgSGQoVUk9VVEVSX1RFWFRfQlJPQURDQVNUEAkSEAoM", + "Q0xJRU5UX0VSUk9SEEASEgoOQ0xJRU5UX0hJU1RPUlkQQRIQCgxDTElFTlRf", + "U1RBVFMQQhIPCgtDTElFTlRfUElORxBDEg8KC0NMSUVOVF9QT05HEEQSEAoM", + "Q0xJRU5UX0FCT1JUEGpCCQoHdmFyaWFudEJqChNjb20uZ2Vla3N2aWxsZS5t", + "ZXNoQhVTdG9yZUFuZEZvcndhcmRQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRh", + "c3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIG", + "cHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward), global::Meshtastic.Protobufs.StoreAndForward.Parser, new[]{ "Rr", "Stats", "History", "Heartbeat", "Empty" }, new[]{ "Variant" }, new[]{ typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.RequestResponse) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.Statistics), global::Meshtastic.Protobufs.StoreAndForward.Types.Statistics.Parser, new[]{ "MessagesTotal", "MessagesSaved", "MessagesMax", "UpTime", "Requests", "RequestsHistory", "Heartbeat", "ReturnMax", "ReturnWindow" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward), global::Meshtastic.Protobufs.StoreAndForward.Parser, new[]{ "Rr", "Stats", "History", "Heartbeat", "Text" }, new[]{ "Variant" }, new[]{ typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.RequestResponse) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.Statistics), global::Meshtastic.Protobufs.StoreAndForward.Types.Statistics.Parser, new[]{ "MessagesTotal", "MessagesSaved", "MessagesMax", "UpTime", "Requests", "RequestsHistory", "Heartbeat", "ReturnMax", "ReturnWindow" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.History), global::Meshtastic.Protobufs.StoreAndForward.Types.History.Parser, new[]{ "HistoryMessages", "Window", "LastRequest" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.StoreAndForward.Types.Heartbeat), global::Meshtastic.Protobufs.StoreAndForward.Types.Heartbeat.Parser, new[]{ "Period", "Secondary" }, null, null, null, null)}) })); @@ -109,8 +110,8 @@ public StoreAndForward(StoreAndForward other) : this() { case VariantOneofCase.Heartbeat: Heartbeat = other.Heartbeat.Clone(); break; - case VariantOneofCase.Empty: - Empty = other.Empty; + case VariantOneofCase.Text: + Text = other.Text; break; } @@ -187,19 +188,19 @@ public StoreAndForward Clone() { } } - /// Field number for the "empty" field. - public const int EmptyFieldNumber = 5; + /// Field number for the "text" field. + public const int TextFieldNumber = 5; /// /// - /// Empty Payload + /// Text from history message. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Empty { - get { return variantCase_ == VariantOneofCase.Empty ? (bool) variant_ : false; } + public pb::ByteString Text { + get { return variantCase_ == VariantOneofCase.Text ? (pb::ByteString) variant_ : pb::ByteString.Empty; } set { - variant_ = value; - variantCase_ = VariantOneofCase.Empty; + variant_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + variantCase_ = VariantOneofCase.Text; } } @@ -210,7 +211,7 @@ public enum VariantOneofCase { Stats = 2, History = 3, Heartbeat = 4, - Empty = 5, + Text = 5, } private VariantOneofCase variantCase_ = VariantOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -245,7 +246,7 @@ public bool Equals(StoreAndForward other) { if (!object.Equals(Stats, other.Stats)) return false; if (!object.Equals(History, other.History)) return false; if (!object.Equals(Heartbeat, other.Heartbeat)) return false; - if (Empty != other.Empty) return false; + if (Text != other.Text) return false; if (VariantCase != other.VariantCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -258,7 +259,7 @@ public override int GetHashCode() { if (variantCase_ == VariantOneofCase.Stats) hash ^= Stats.GetHashCode(); if (variantCase_ == VariantOneofCase.History) hash ^= History.GetHashCode(); if (variantCase_ == VariantOneofCase.Heartbeat) hash ^= Heartbeat.GetHashCode(); - if (variantCase_ == VariantOneofCase.Empty) hash ^= Empty.GetHashCode(); + if (variantCase_ == VariantOneofCase.Text) hash ^= Text.GetHashCode(); hash ^= (int) variantCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -294,9 +295,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteMessage(Heartbeat); } - if (variantCase_ == VariantOneofCase.Empty) { - output.WriteRawTag(40); - output.WriteBool(Empty); + if (variantCase_ == VariantOneofCase.Text) { + output.WriteRawTag(42); + output.WriteBytes(Text); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -324,9 +325,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteMessage(Heartbeat); } - if (variantCase_ == VariantOneofCase.Empty) { - output.WriteRawTag(40); - output.WriteBool(Empty); + if (variantCase_ == VariantOneofCase.Text) { + output.WriteRawTag(42); + output.WriteBytes(Text); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -350,8 +351,8 @@ public int CalculateSize() { if (variantCase_ == VariantOneofCase.Heartbeat) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Heartbeat); } - if (variantCase_ == VariantOneofCase.Empty) { - size += 1 + 1; + if (variantCase_ == VariantOneofCase.Text) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Text); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -387,8 +388,8 @@ public void MergeFrom(StoreAndForward other) { } Heartbeat.MergeFrom(other.Heartbeat); break; - case VariantOneofCase.Empty: - Empty = other.Empty; + case VariantOneofCase.Text: + Text = other.Text; break; } @@ -438,8 +439,8 @@ public void MergeFrom(pb::CodedInputStream input) { Heartbeat = subBuilder; break; } - case 40: { - Empty = input.ReadBool(); + case 42: { + Text = input.ReadBytes(); break; } } @@ -488,8 +489,8 @@ public void MergeFrom(pb::CodedInputStream input) { Heartbeat = subBuilder; break; } - case 40: { - Empty = input.ReadBool(); + case 42: { + Text = input.ReadBytes(); break; } } @@ -551,6 +552,16 @@ public enum RequestResponse { [pbr::OriginalName("ROUTER_STATS")] RouterStats = 7, /// /// + /// Router sends a text message from its history that was a direct message. + /// + [pbr::OriginalName("ROUTER_TEXT_DIRECT")] RouterTextDirect = 8, + /// + /// + /// Router sends a text message from its history that was a broadcast. + /// + [pbr::OriginalName("ROUTER_TEXT_BROADCAST")] RouterTextBroadcast = 9, + /// + /// /// Client is an in error state. /// [pbr::OriginalName("CLIENT_ERROR")] ClientError = 64, @@ -755,7 +766,7 @@ public bool Heartbeat { private uint returnMax_; /// /// - /// Is the heartbeat enabled on the server? + /// Maximum number of messages the server will return. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -771,7 +782,7 @@ public uint ReturnMax { private uint returnWindow_; /// /// - /// Is the heartbeat enabled on the server? + /// Maximum history window in minutes the server will return messages from. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1194,7 +1205,8 @@ public uint Window { private uint lastRequest_; /// /// - /// The window of messages that was used to filter the history client requested + /// Index in the packet history of the last message sent in a previous request to the server. + /// Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1440,7 +1452,7 @@ public Heartbeat Clone() { private uint period_; /// /// - /// Number of that will be sent to the client + /// Period in seconds that the heartbeat is sent out that will be sent to the client /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/Meshtastic/Generated/Telemetry.cs b/Meshtastic/Generated/Telemetry.cs index 2f77098..ba3fea4 100644 --- a/Meshtastic/Generated/Telemetry.cs +++ b/Meshtastic/Generated/Telemetry.cs @@ -47,14 +47,14 @@ static TelemetryReflection() { "bm1lbnRNZXRyaWNzSAASPAoTYWlyX3F1YWxpdHlfbWV0cmljcxgEIAEoCzId", "Lm1lc2h0YXN0aWMuQWlyUXVhbGl0eU1ldHJpY3NIABIxCg1wb3dlcl9tZXRy", "aWNzGAUgASgLMhgubWVzaHRhc3RpYy5Qb3dlck1ldHJpY3NIAEIJCgd2YXJp", - "YW50KtQBChNUZWxlbWV0cnlTZW5zb3JUeXBlEhAKDFNFTlNPUl9VTlNFVBAA", + "YW50KuABChNUZWxlbWV0cnlTZW5zb3JUeXBlEhAKDFNFTlNPUl9VTlNFVBAA", "EgoKBkJNRTI4MBABEgoKBkJNRTY4MBACEgsKB01DUDk4MDgQAxIKCgZJTkEy", "NjAQBBIKCgZJTkEyMTkQBRIKCgZCTVAyODAQBhIJCgVTSFRDMxAHEgkKBUxQ", "UzIyEAgSCwoHUU1DNjMxMBAJEgsKB1FNSTg2NTgQChIMCghRTUM1ODgzTBAL", - "EgkKBVNIVDMxEAwSDAoIUE1TQTAwM0kQDRILCgdJTkEzMjIxEA5CZAoTY29t", - "LmdlZWtzdmlsbGUubWVzaEIPVGVsZW1ldHJ5UHJvdG9zWiJnaXRodWIuY29t", - "L21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRhc3RpYy5Qcm90b2J1", - "ZnO6AgBiBnByb3RvMw==")); + "EgkKBVNIVDMxEAwSDAoIUE1TQTAwM0kQDRILCgdJTkEzMjIxEA4SCgoGQk1Q", + "MDg1EA9CZAoTY29tLmdlZWtzdmlsbGUubWVzaEIPVGVsZW1ldHJ5UHJvdG9z", + "WiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRh", + "c3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.TelemetrySensorType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -149,6 +149,11 @@ public enum TelemetrySensorType { /// INA3221 3 Channel Voltage / Current Sensor /// [pbr::OriginalName("INA3221")] Ina3221 = 14, + /// + /// + /// BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280) + /// + [pbr::OriginalName("BMP085")] Bmp085 = 15, } #endregion diff --git a/Meshtastic/Meshtastic.csproj b/Meshtastic/Meshtastic.csproj index a67b9b9..8e90ac1 100644 --- a/Meshtastic/Meshtastic.csproj +++ b/Meshtastic/Meshtastic.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable enable Meshtastic @@ -31,13 +31,13 @@ - - - - - - - + + + + + + + diff --git a/protobufs b/protobufs index 2ccf734..53e1c4f 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 2ccf73428da8dac87aca12a1f91ac5cd76a7442c +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 ../../