Skip to content

Commit

Permalink
Merge pull request #42 from meshtastic/wip
Browse files Browse the repository at this point in the history
Wip
  • Loading branch information
thebentern authored Aug 7, 2023
2 parents 347c5f8 + 55db056 commit 28f8ba1
Show file tree
Hide file tree
Showing 10 changed files with 217 additions and 104 deletions.
40 changes: 40 additions & 0 deletions Meshtastic.Cli/CommandHandlers/RequestTelemetryCommandHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using Meshtastic.Data;
using Meshtastic.Data.MessageFactories;
using Meshtastic.Protobufs;
using Meshtastic.Extensions;
using Microsoft.Extensions.Logging;

namespace Meshtastic.Cli.CommandHandlers;

public class RequestTelemetryCommandHandler : DeviceCommandHandler
{
public RequestTelemetryCommandHandler(DeviceConnectionContext context,
CommandContext commandContext) : base(context, commandContext)
{
}

public async Task<DeviceStateContainer> Handle()
{
if (Destination is null)
throw new ApplicationException("Destination must be specified to request telemetry");

var wantConfig = new ToRadioMessageFactory().CreateWantConfigMessage();
var container = await Connection.WriteToRadio(wantConfig, CompleteOnConfigReceived);
Connection.Disconnect();
return container;
}

public override async Task OnCompleted(FromRadio packet, DeviceStateContainer container)
{
var telemetryMessageFactory = new TelemetryMessageFactory(container, Destination);
var message = telemetryMessageFactory.CreateTelemetryPacket();
await Connection.WriteToRadio(ToRadioMessageFactory.CreateMeshPacketMessage(message), async (packet, container) =>
{
if (packet.Packet.Decoded.RequestId > 0 && packet.Packet.From == Destination!.Value && packet.GetPayload<Telemetry>()?.DeviceMetrics is not null) {
var metrics = packet.GetPayload<Telemetry>()?.DeviceMetrics;
Logger.LogInformation($"Received telemetry from destination ({Destination.Value}): \n{metrics}");
}
return await Task.FromResult(false);
});
}
}
21 changes: 21 additions & 0 deletions Meshtastic.Cli/Commands/RequestTelemetryCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using Meshtastic.Cli.Binders;
using Meshtastic.Cli.CommandHandlers;
using Meshtastic.Cli.Enums;
using Microsoft.Extensions.Logging;

namespace Meshtastic.Cli.Commands;

public class RequestTelemetryCommand : Command
{
public RequestTelemetryCommand(string name, string description, Option<string> port, Option<string> host,
Option<OutputFormat> output, Option<LogLevel> log, Option<uint?> dest, Option<bool> selectDest) : base(name, description)
{
this.SetHandler(async (context, commandContext) =>
{
var handler = new RequestTelemetryCommandHandler(context, commandContext);
await handler.Handle();
},
new DeviceConnectionBinder(port, host),
new CommandContextBinder(log, output, dest, selectDest));
}
}
1 change: 1 addition & 0 deletions Meshtastic.Cli/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
root.AddCommand(new ExportCommand("export", "Export the profile of the connected device as yaml", port, host, output, log));
root.AddCommand(new ImportCommand("import", "Import the profile export from a yaml file and set the connected device", port, host, output, log));
root.AddCommand(new MqttProxyCommand("mqtt-proxy", "Proxy to the MQTT server referenced in the MQTT module config of the connected device", port, host, output, log));
root.AddCommand(new RequestTelemetryCommand("request-telemetry", "Request a telemetry packet from a repeater by nodenum", port, host, output, log, dest, selectDest));

var parser = new CommandLineBuilder(root)
.UseExceptionHandler((ex, context) =>
Expand Down
42 changes: 42 additions & 0 deletions Meshtastic/Data/MessageFactories/TelemetryMessageFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using Google.Protobuf;
using Meshtastic.Protobufs;
using Meshtastic.Extensions;

namespace Meshtastic.Data.MessageFactories;

public class TelemetryMessageFactory
{
private readonly DeviceStateContainer container;
private readonly uint? dest;

public TelemetryMessageFactory(DeviceStateContainer container, uint? dest = null)
{
this.container = container;
this.dest = dest;
}

public MeshPacket CreateTelemetryPacket(uint channel = 0)
{
var telemetry = container?.FromRadioMessageLog
.Where(fromRadio => fromRadio.Packet?.From == container.MyNodeInfo?.MyNodeNum)
.FirstOrDefault(fromRadio => fromRadio.GetPayload<Telemetry>()?.DeviceMetrics != null)?.GetPayload<Telemetry>()?.DeviceMetrics;

return new MeshPacket()
{
Channel = channel,
WantAck = true,
To = dest ?? 0,
Id = (uint)Math.Floor(Random.Shared.Next() * 1e9),
HopLimit = container?.GetHopLimitOrDefault() ?? 3,
Decoded = new Protobufs.Data()
{
Portnum = PortNum.TelemetryApp,
Payload = new Telemetry()
{
DeviceMetrics = telemetry ?? new DeviceMetrics()
}.ToByteString(),
WantResponse = true,
},
};
}
}
26 changes: 16 additions & 10 deletions Meshtastic/Generated/Admin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ static AdminReflection() {
"dGljL2NoYW5uZWwucHJvdG8aF21lc2h0YXN0aWMvY29uZmlnLnByb3RvGiJt",
"ZXNodGFzdGljL2Nvbm5lY3Rpb25fc3RhdHVzLnByb3RvGhttZXNodGFzdGlj",
"L2RldmljZW9ubHkucHJvdG8aFW1lc2h0YXN0aWMvbWVzaC5wcm90bxoebWVz",
"aHRhc3RpYy9tb2R1bGVfY29uZmlnLnByb3RvIvYOCgxBZG1pbk1lc3NhZ2US",
"aHRhc3RpYy9tb2R1bGVfY29uZmlnLnByb3RvIpIPCgxBZG1pbk1lc3NhZ2US",
"HQoTZ2V0X2NoYW5uZWxfcmVxdWVzdBgBIAEoDUgAEjMKFGdldF9jaGFubmVs",
"X3Jlc3BvbnNlGAIgASgLMhMubWVzaHRhc3RpYy5DaGFubmVsSAASGwoRZ2V0",
"X293bmVyX3JlcXVlc3QYAyABKAhIABIuChJnZXRfb3duZXJfcmVzcG9uc2UY",
Expand Down Expand Up @@ -65,19 +65,20 @@ static AdminReflection() {
"ABIWCgxub2RlZGJfcmVzZXQYZCABKAVIACKVAQoKQ29uZmlnVHlwZRIRCg1E",
"RVZJQ0VfQ09ORklHEAASEwoPUE9TSVRJT05fQ09ORklHEAESEAoMUE9XRVJf",
"Q09ORklHEAISEgoOTkVUV09SS19DT05GSUcQAxISCg5ESVNQTEFZX0NPTkZJ",
"RxAEEg8KC0xPUkFfQ09ORklHEAUSFAoQQkxVRVRPT1RIX0NPTkZJRxAGItMB",
"RxAEEg8KC0xPUkFfQ09ORklHEAUSFAoQQkxVRVRPT1RIX0NPTkZJRxAGIu8B",
"ChBNb2R1bGVDb25maWdUeXBlEg8KC01RVFRfQ09ORklHEAASEQoNU0VSSUFM",
"X0NPTkZJRxABEhMKD0VYVE5PVElGX0NPTkZJRxACEhcKE1NUT1JFRk9SV0FS",
"RF9DT05GSUcQAxIUChBSQU5HRVRFU1RfQ09ORklHEAQSFAoQVEVMRU1FVFJZ",
"X0NPTkZJRxAFEhQKEENBTk5FRE1TR19DT05GSUcQBhIQCgxBVURJT19DT05G",
"SUcQBxIZChVSRU1PVEVIQVJEV0FSRV9DT05GSUcQCEIRCg9wYXlsb2FkX3Zh",
"cmlhbnQiWwoNSGFtUGFyYW1ldGVycxIRCgljYWxsX3NpZ24YASABKAkSEAoI",
"dHhfcG93ZXIYAiABKAUSEQoJZnJlcXVlbmN5GAMgASgCEhIKCnNob3J0X25h",
"bWUYBCABKAkiZgoeTm9kZVJlbW90ZUhhcmR3YXJlUGluc1Jlc3BvbnNlEkQK",
"GW5vZGVfcmVtb3RlX2hhcmR3YXJlX3BpbnMYASADKAsyIS5tZXNodGFzdGlj",
"Lk5vZGVSZW1vdGVIYXJkd2FyZVBpbkJgChNjb20uZ2Vla3N2aWxsZS5tZXNo",
"QgtBZG1pblByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVy",
"YXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM="));
"SUcQBxIZChVSRU1PVEVIQVJEV0FSRV9DT05GSUcQCBIaChZBTUJJRU5UTElH",
"SFRJTkdfQ09ORklHEApCEQoPcGF5bG9hZF92YXJpYW50IlsKDUhhbVBhcmFt",
"ZXRlcnMSEQoJY2FsbF9zaWduGAEgASgJEhAKCHR4X3Bvd2VyGAIgASgFEhEK",
"CWZyZXF1ZW5jeRgDIAEoAhISCgpzaG9ydF9uYW1lGAQgASgJImYKHk5vZGVS",
"ZW1vdGVIYXJkd2FyZVBpbnNSZXNwb25zZRJEChlub2RlX3JlbW90ZV9oYXJk",
"d2FyZV9waW5zGAEgAygLMiEubWVzaHRhc3RpYy5Ob2RlUmVtb3RlSGFyZHdh",
"cmVQaW5CYAoTY29tLmdlZWtzdmlsbGUubWVzaEILQWRtaW5Qcm90b3NaImdp",
"dGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGlj",
"LlByb3RvYnVmc7oCAGIGcHJvdG8z"));
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::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
Expand Down Expand Up @@ -1990,6 +1991,11 @@ public enum ModuleConfigType {
/// TODO: REPLACE
/// </summary>
[pbr::OriginalName("REMOTEHARDWARE_CONFIG")] RemotehardwareConfig = 8,
/// <summary>
///
/// TODO: REPLACE
/// </summary>
[pbr::OriginalName("AMBIENTLIGHTING_CONFIG")] AmbientlightingConfig = 10,
}

}
Expand Down
110 changes: 56 additions & 54 deletions Meshtastic/Generated/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static partial class ConfigReflection {
static ConfigReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyL4HAoGQ29u",
"ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyL8HAoGQ29u",
"ZmlnEjEKBmRldmljZRgBIAEoCzIfLm1lc2h0YXN0aWMuQ29uZmlnLkRldmlj",
"ZUNvbmZpZ0gAEjUKCHBvc2l0aW9uGAIgASgLMiEubWVzaHRhc3RpYy5Db25m",
"aWcuUG9zaXRpb25Db25maWdIABIvCgVwb3dlchgDIAEoCzIeLm1lc2h0YXN0",
Expand Down Expand Up @@ -55,61 +55,61 @@ static ConfigReflection() {
"UG9zaXRpb25GbGFncxIJCgVVTlNFVBAAEgwKCEFMVElUVURFEAESEAoMQUxU",
"SVRVREVfTVNMEAISFgoSR0VPSURBTF9TRVBBUkFUSU9OEAQSBwoDRE9QEAgS",
"CQoFSFZET1AQEBINCglTQVRJTlZJRVcQIBIKCgZTRVFfTk8QQBIOCglUSU1F",
"U1RBTVAQgAESDAoHSEVBRElORxCAAhIKCgVTUEVFRBCABBqJAgoLUG93ZXJD",
"U1RBTVAQgAESDAoHSEVBRElORxCAAhIKCgVTUEVFRBCABBqNAgoLUG93ZXJD",
"b25maWcSFwoPaXNfcG93ZXJfc2F2aW5nGAEgASgIEiYKHm9uX2JhdHRlcnlf",
"c2h1dGRvd25fYWZ0ZXJfc2VjcxgCIAEoDRIfChdhZGNfbXVsdGlwbGllcl9v",
"dmVycmlkZRgDIAEoAhIbChN3YWl0X2JsdWV0b290aF9zZWNzGAQgASgNEh0K",
"FW1lc2hfc2RzX3RpbWVvdXRfc2VjcxgFIAEoDRIQCghzZHNfc2VjcxgGIAEo",
"DRIPCgdsc19zZWNzGAcgASgNEhUKDW1pbl93YWtlX3NlY3MYCCABKA0SIgoa",
"ZGV2aWNlX2JhdHRlcnlfaW5hX2FkZHJlc3MYCSABKA0a/gIKDU5ldHdvcmtD",
"b25maWcSFAoMd2lmaV9lbmFibGVkGAEgASgIEhEKCXdpZmlfc3NpZBgDIAEo",
"CRIQCgh3aWZpX3BzaxgEIAEoCRISCgpudHBfc2VydmVyGAUgASgJEhMKC2V0",
"aF9lbmFibGVkGAYgASgIEkIKDGFkZHJlc3NfbW9kZRgHIAEoDjIsLm1lc2h0",
"YXN0aWMuQ29uZmlnLk5ldHdvcmtDb25maWcuQWRkcmVzc01vZGUSQAoLaXB2",
"NF9jb25maWcYCCABKAsyKy5tZXNodGFzdGljLkNvbmZpZy5OZXR3b3JrQ29u",
"ZmlnLklwVjRDb25maWcSFgoOcnN5c2xvZ19zZXJ2ZXIYCSABKAkaRgoKSXBW",
"NENvbmZpZxIKCgJpcBgBIAEoBxIPCgdnYXRld2F5GAIgASgHEg4KBnN1Ym5l",
"dBgDIAEoBxILCgNkbnMYBCABKAciIwoLQWRkcmVzc01vZGUSCAoEREhDUBAA",
"EgoKBlNUQVRJQxABGr4FCg1EaXNwbGF5Q29uZmlnEhYKDnNjcmVlbl9vbl9z",
"ZWNzGAEgASgNEkgKCmdwc19mb3JtYXQYAiABKA4yNC5tZXNodGFzdGljLkNv",
"bmZpZy5EaXNwbGF5Q29uZmlnLkdwc0Nvb3JkaW5hdGVGb3JtYXQSIQoZYXV0",
"b19zY3JlZW5fY2Fyb3VzZWxfc2VjcxgDIAEoDRIZChFjb21wYXNzX25vcnRo",
"X3RvcBgEIAEoCBITCgtmbGlwX3NjcmVlbhgFIAEoCBI8CgV1bml0cxgGIAEo",
"DjItLm1lc2h0YXN0aWMuQ29uZmlnLkRpc3BsYXlDb25maWcuRGlzcGxheVVu",
"aXRzEjcKBG9sZWQYByABKA4yKS5tZXNodGFzdGljLkNvbmZpZy5EaXNwbGF5",
"Q29uZmlnLk9sZWRUeXBlEkEKC2Rpc3BsYXltb2RlGAggASgOMiwubWVzaHRh",
"c3RpYy5Db25maWcuRGlzcGxheUNvbmZpZy5EaXNwbGF5TW9kZRIUCgxoZWFk",
"aW5nX2JvbGQYCSABKAgSHQoVd2FrZV9vbl90YXBfb3JfbW90aW9uGAogASgI",
"Ik0KE0dwc0Nvb3JkaW5hdGVGb3JtYXQSBwoDREVDEAASBwoDRE1TEAESBwoD",
"VVRNEAISCAoETUdSUxADEgcKA09MQxAEEggKBE9TR1IQBSIoCgxEaXNwbGF5",
"VW5pdHMSCgoGTUVUUklDEAASDAoISU1QRVJJQUwQASJNCghPbGVkVHlwZRIN",
"CglPTEVEX0FVVE8QABIQCgxPTEVEX1NTRDEzMDYQARIPCgtPTEVEX1NIMTEw",
"NhACEg8KC09MRURfU0gxMTA3EAMiQQoLRGlzcGxheU1vZGUSCwoHREVGQVVM",
"VBAAEgwKCFRXT0NPTE9SEAESDAoISU5WRVJURUQQAhIJCgVDT0xPUhADGvcF",
"CgpMb1JhQ29uZmlnEhIKCnVzZV9wcmVzZXQYASABKAgSPwoMbW9kZW1fcHJl",
"c2V0GAIgASgOMikubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZy5Nb2Rl",
"bVByZXNldBIRCgliYW5kd2lkdGgYAyABKA0SFQoNc3ByZWFkX2ZhY3RvchgE",
"IAEoDRITCgtjb2RpbmdfcmF0ZRgFIAEoDRIYChBmcmVxdWVuY3lfb2Zmc2V0",
"GAYgASgCEjgKBnJlZ2lvbhgHIAEoDjIoLm1lc2h0YXN0aWMuQ29uZmlnLkxv",
"UmFDb25maWcuUmVnaW9uQ29kZRIRCglob3BfbGltaXQYCCABKA0SEgoKdHhf",
"ZW5hYmxlZBgJIAEoCBIQCgh0eF9wb3dlchgKIAEoBRITCgtjaGFubmVsX251",
"bRgLIAEoDRIbChNvdmVycmlkZV9kdXR5X2N5Y2xlGAwgASgIEh4KFnN4MTI2",
"eF9yeF9ib29zdGVkX2dhaW4YDSABKAgSGgoSb3ZlcnJpZGVfZnJlcXVlbmN5",
"GA4gASgCEhcKD2lnbm9yZV9pbmNvbWluZxhnIAMoDSKpAQoKUmVnaW9uQ29k",
"ZRIJCgVVTlNFVBAAEgYKAlVTEAESCgoGRVVfNDMzEAISCgoGRVVfODY4EAMS",
"BgoCQ04QBBIGCgJKUBAFEgcKA0FOWhAGEgYKAktSEAcSBgoCVFcQCBIGCgJS",
"VRAJEgYKAklOEAoSCgoGTlpfODY1EAsSBgoCVEgQDBILCgdMT1JBXzI0EA0S",
"CgoGVUFfNDMzEA4SCgoGVUFfODY4EA8ilAEKC01vZGVtUHJlc2V0Eg0KCUxP",
"TkdfRkFTVBAAEg0KCUxPTkdfU0xPVxABEhIKDlZFUllfTE9OR19TTE9XEAIS",
"DwoLTUVESVVNX1NMT1cQAxIPCgtNRURJVU1fRkFTVBAEEg4KClNIT1JUX1NM",
"T1cQBRIOCgpTSE9SVF9GQVNUEAYSEQoNTE9OR19NT0RFUkFURRAHGq0BCg9C",
"bHVldG9vdGhDb25maWcSDwoHZW5hYmxlZBgBIAEoCBI8CgRtb2RlGAIgASgO",
"Mi4ubWVzaHRhc3RpYy5Db25maWcuQmx1ZXRvb3RoQ29uZmlnLlBhaXJpbmdN",
"b2RlEhEKCWZpeGVkX3BpbhgDIAEoDSI4CgtQYWlyaW5nTW9kZRIOCgpSQU5E",
"T01fUElOEAASDQoJRklYRURfUElOEAESCgoGTk9fUElOEAJCEQoPcGF5bG9h",
"ZF92YXJpYW50QmEKE2NvbS5nZWVrc3ZpbGxlLm1lc2hCDENvbmZpZ1Byb3Rv",
"c1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0",
"YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM="));
"dmVycmlkZRgDIAEoAhIbChN3YWl0X2JsdWV0b290aF9zZWNzGAQgASgNEiEK",
"FW1lc2hfc2RzX3RpbWVvdXRfc2VjcxgFIAEoDUICGAESEAoIc2RzX3NlY3MY",
"BiABKA0SDwoHbHNfc2VjcxgHIAEoDRIVCg1taW5fd2FrZV9zZWNzGAggASgN",
"EiIKGmRldmljZV9iYXR0ZXJ5X2luYV9hZGRyZXNzGAkgASgNGv4CCg1OZXR3",
"b3JrQ29uZmlnEhQKDHdpZmlfZW5hYmxlZBgBIAEoCBIRCgl3aWZpX3NzaWQY",
"AyABKAkSEAoId2lmaV9wc2sYBCABKAkSEgoKbnRwX3NlcnZlchgFIAEoCRIT",
"CgtldGhfZW5hYmxlZBgGIAEoCBJCCgxhZGRyZXNzX21vZGUYByABKA4yLC5t",
"ZXNodGFzdGljLkNvbmZpZy5OZXR3b3JrQ29uZmlnLkFkZHJlc3NNb2RlEkAK",
"C2lwdjRfY29uZmlnGAggASgLMisubWVzaHRhc3RpYy5Db25maWcuTmV0d29y",
"a0NvbmZpZy5JcFY0Q29uZmlnEhYKDnJzeXNsb2dfc2VydmVyGAkgASgJGkYK",
"CklwVjRDb25maWcSCgoCaXAYASABKAcSDwoHZ2F0ZXdheRgCIAEoBxIOCgZz",
"dWJuZXQYAyABKAcSCwoDZG5zGAQgASgHIiMKC0FkZHJlc3NNb2RlEggKBERI",
"Q1AQABIKCgZTVEFUSUMQARq+BQoNRGlzcGxheUNvbmZpZxIWCg5zY3JlZW5f",
"b25fc2VjcxgBIAEoDRJICgpncHNfZm9ybWF0GAIgASgOMjQubWVzaHRhc3Rp",
"Yy5Db25maWcuRGlzcGxheUNvbmZpZy5HcHNDb29yZGluYXRlRm9ybWF0EiEK",
"GWF1dG9fc2NyZWVuX2Nhcm91c2VsX3NlY3MYAyABKA0SGQoRY29tcGFzc19u",
"b3J0aF90b3AYBCABKAgSEwoLZmxpcF9zY3JlZW4YBSABKAgSPAoFdW5pdHMY",
"BiABKA4yLS5tZXNodGFzdGljLkNvbmZpZy5EaXNwbGF5Q29uZmlnLkRpc3Bs",
"YXlVbml0cxI3CgRvbGVkGAcgASgOMikubWVzaHRhc3RpYy5Db25maWcuRGlz",
"cGxheUNvbmZpZy5PbGVkVHlwZRJBCgtkaXNwbGF5bW9kZRgIIAEoDjIsLm1l",
"c2h0YXN0aWMuQ29uZmlnLkRpc3BsYXlDb25maWcuRGlzcGxheU1vZGUSFAoM",
"aGVhZGluZ19ib2xkGAkgASgIEh0KFXdha2Vfb25fdGFwX29yX21vdGlvbhgK",
"IAEoCCJNChNHcHNDb29yZGluYXRlRm9ybWF0EgcKA0RFQxAAEgcKA0RNUxAB",
"EgcKA1VUTRACEggKBE1HUlMQAxIHCgNPTEMQBBIICgRPU0dSEAUiKAoMRGlz",
"cGxheVVuaXRzEgoKBk1FVFJJQxAAEgwKCElNUEVSSUFMEAEiTQoIT2xlZFR5",
"cGUSDQoJT0xFRF9BVVRPEAASEAoMT0xFRF9TU0QxMzA2EAESDwoLT0xFRF9T",
"SDExMDYQAhIPCgtPTEVEX1NIMTEwNxADIkEKC0Rpc3BsYXlNb2RlEgsKB0RF",
"RkFVTFQQABIMCghUV09DT0xPUhABEgwKCElOVkVSVEVEEAISCQoFQ09MT1IQ",
"Axr3BQoKTG9SYUNvbmZpZxISCgp1c2VfcHJlc2V0GAEgASgIEj8KDG1vZGVt",
"X3ByZXNldBgCIAEoDjIpLm1lc2h0YXN0aWMuQ29uZmlnLkxvUmFDb25maWcu",
"TW9kZW1QcmVzZXQSEQoJYmFuZHdpZHRoGAMgASgNEhUKDXNwcmVhZF9mYWN0",
"b3IYBCABKA0SEwoLY29kaW5nX3JhdGUYBSABKA0SGAoQZnJlcXVlbmN5X29m",
"ZnNldBgGIAEoAhI4CgZyZWdpb24YByABKA4yKC5tZXNodGFzdGljLkNvbmZp",
"Zy5Mb1JhQ29uZmlnLlJlZ2lvbkNvZGUSEQoJaG9wX2xpbWl0GAggASgNEhIK",
"CnR4X2VuYWJsZWQYCSABKAgSEAoIdHhfcG93ZXIYCiABKAUSEwoLY2hhbm5l",
"bF9udW0YCyABKA0SGwoTb3ZlcnJpZGVfZHV0eV9jeWNsZRgMIAEoCBIeChZz",
"eDEyNnhfcnhfYm9vc3RlZF9nYWluGA0gASgIEhoKEm92ZXJyaWRlX2ZyZXF1",
"ZW5jeRgOIAEoAhIXCg9pZ25vcmVfaW5jb21pbmcYZyADKA0iqQEKClJlZ2lv",
"bkNvZGUSCQoFVU5TRVQQABIGCgJVUxABEgoKBkVVXzQzMxACEgoKBkVVXzg2",
"OBADEgYKAkNOEAQSBgoCSlAQBRIHCgNBTloQBhIGCgJLUhAHEgYKAlRXEAgS",
"BgoCUlUQCRIGCgJJThAKEgoKBk5aXzg2NRALEgYKAlRIEAwSCwoHTE9SQV8y",
"NBANEgoKBlVBXzQzMxAOEgoKBlVBXzg2OBAPIpQBCgtNb2RlbVByZXNldBIN",
"CglMT05HX0ZBU1QQABINCglMT05HX1NMT1cQARISCg5WRVJZX0xPTkdfU0xP",
"VxACEg8KC01FRElVTV9TTE9XEAMSDwoLTUVESVVNX0ZBU1QQBBIOCgpTSE9S",
"VF9TTE9XEAUSDgoKU0hPUlRfRkFTVBAGEhEKDUxPTkdfTU9ERVJBVEUQBxqt",
"AQoPQmx1ZXRvb3RoQ29uZmlnEg8KB2VuYWJsZWQYASABKAgSPAoEbW9kZRgC",
"IAEoDjIuLm1lc2h0YXN0aWMuQ29uZmlnLkJsdWV0b290aENvbmZpZy5QYWly",
"aW5nTW9kZRIRCglmaXhlZF9waW4YAyABKA0iOAoLUGFpcmluZ01vZGUSDgoK",
"UkFORE9NX1BJThAAEg0KCUZJWEVEX1BJThABEgoKBk5PX1BJThACQhEKD3Bh",
"eWxvYWRfdmFyaWFudEJhChNjb20uZ2Vla3N2aWxsZS5tZXNoQgxDb25maWdQ",
"cm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRN",
"ZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
Expand Down Expand Up @@ -2121,11 +2121,13 @@ public uint WaitBluetoothSecs {
private uint meshSdsTimeoutSecs_;
/// <summary>
///
/// Deprecated in 2.1.X
/// Mesh Super Deep Sleep Timeout Seconds
/// While in Light Sleep if this value is exceeded we will lower into super deep sleep
/// for sds_secs (default 1 year) or a button press
/// 0 for default of two hours, MAXUINT for disabled
/// </summary>
[global::System.ObsoleteAttribute]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint MeshSdsTimeoutSecs {
Expand Down
Loading

0 comments on commit 28f8ba1

Please sign in to comment.