diff --git a/Meshtastic/Connections/SerialConnection.cs b/Meshtastic/Connections/SerialConnection.cs index cd4737d..cb03498 100644 --- a/Meshtastic/Connections/SerialConnection.cs +++ b/Meshtastic/Connections/SerialConnection.cs @@ -10,22 +10,24 @@ namespace Meshtastic.Connections; public class SerialConnection : DeviceConnection { private readonly SerialPort serialPort; + private const Handshake DEFAULT_HANDSHAKE = Handshake.None; + private const bool DEFAULT_DTR_ENABLE = true; public SerialConnection(ILogger logger, string port, int baudRate = Resources.DEFAULT_BAUD_RATE) : base(logger) { serialPort = new SerialPort(port, baudRate) { - DtrEnable = true, - Handshake = Handshake.XOnXOff, - WriteBufferSize = 8, + DtrEnable = DEFAULT_DTR_ENABLE, + Handshake = DEFAULT_HANDSHAKE, + WriteBufferSize = 256, }; } public SerialConnection(ILogger logger, string port, DeviceStateContainer container, - bool dtrEnable = true, - Handshake handshake = Handshake.XOnXOff, + bool dtrEnable = DEFAULT_DTR_ENABLE, + Handshake handshake = DEFAULT_HANDSHAKE, int baudRate = Resources.DEFAULT_BAUD_RATE) : base(logger) { serialPort = new SerialPort(port, baudRate) diff --git a/Meshtastic/Generated/Admin.cs b/Meshtastic/Generated/Admin.cs index be5249c..c49c4ac 100644 --- a/Meshtastic/Generated/Admin.cs +++ b/Meshtastic/Generated/Admin.cs @@ -775,7 +775,7 @@ public uint RemoveFavoriteNode { public const int RemoveFixedPositionFieldNumber = 42; /// /// - /// Clear fixed position coordinates and then set position.fixed_position = false + /// Clear fixed position coordinates and then set position.fixed_position = false /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/Meshtastic/Generated/Atak.cs b/Meshtastic/Generated/Atak.cs index 6595373..d7b05c1 100644 --- a/Meshtastic/Generated/Atak.cs +++ b/Meshtastic/Generated/Atak.cs @@ -197,7 +197,7 @@ public enum MemberRole { #region Messages /// /// - /// Packets for the official ATAK Plugin + /// Packets for the official ATAK Plugin /// public sealed partial class TAKPacket : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE diff --git a/Meshtastic/Generated/Channel.cs b/Meshtastic/Generated/Channel.cs index 649a47c..a708f39 100644 --- a/Meshtastic/Generated/Channel.cs +++ b/Meshtastic/Generated/Channel.cs @@ -29,19 +29,19 @@ static ChannelReflection() { "GAIgASgMEgwKBG5hbWUYAyABKAkSCgoCaWQYBCABKAcSFgoOdXBsaW5rX2Vu", "YWJsZWQYBSABKAgSGAoQZG93bmxpbmtfZW5hYmxlZBgGIAEoCBIzCg9tb2R1", "bGVfc2V0dGluZ3MYByABKAsyGi5tZXNodGFzdGljLk1vZHVsZVNldHRpbmdz", - "IiwKDk1vZHVsZVNldHRpbmdzEhoKEnBvc2l0aW9uX3ByZWNpc2lvbhgBIAEo", - "DSKhAQoHQ2hhbm5lbBINCgVpbmRleBgBIAEoBRItCghzZXR0aW5ncxgCIAEo", - "CzIbLm1lc2h0YXN0aWMuQ2hhbm5lbFNldHRpbmdzEiYKBHJvbGUYAyABKA4y", - "GC5tZXNodGFzdGljLkNoYW5uZWwuUm9sZSIwCgRSb2xlEgwKCERJU0FCTEVE", - "EAASCwoHUFJJTUFSWRABEg0KCVNFQ09OREFSWRACQmIKE2NvbS5nZWVrc3Zp", - "bGxlLm1lc2hCDUNoYW5uZWxQcm90b3NaImdpdGh1Yi5jb20vbWVzaHRhc3Rp", - "Yy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oCAGIGcHJv", - "dG8z")); + "IkUKDk1vZHVsZVNldHRpbmdzEhoKEnBvc2l0aW9uX3ByZWNpc2lvbhgBIAEo", + "DRIXCg9pc19jbGllbnRfbXV0ZWQYAiABKAgioQEKB0NoYW5uZWwSDQoFaW5k", + "ZXgYASABKAUSLQoIc2V0dGluZ3MYAiABKAsyGy5tZXNodGFzdGljLkNoYW5u", + "ZWxTZXR0aW5ncxImCgRyb2xlGAMgASgOMhgubWVzaHRhc3RpYy5DaGFubmVs", + "LlJvbGUiMAoEUm9sZRIMCghESVNBQkxFRBAAEgsKB1BSSU1BUlkQARINCglT", + "RUNPTkRBUlkQAkJiChNjb20uZ2Vla3N2aWxsZS5tZXNoQg1DaGFubmVsUHJv", + "dG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVz", + "aHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); 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", "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.ModuleSettings), global::Meshtastic.Protobufs.ModuleSettings.Parser, new[]{ "PositionPrecision", "IsClientMuted" }, 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) })); } @@ -581,6 +581,7 @@ public ModuleSettings() { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public ModuleSettings(ModuleSettings other) : this() { positionPrecision_ = other.positionPrecision_; + isClientMuted_ = other.isClientMuted_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -606,6 +607,23 @@ public uint PositionPrecision { } } + /// Field number for the "is_client_muted" field. + public const int IsClientMutedFieldNumber = 2; + private bool isClientMuted_; + /// + /// + /// Controls whether or not the phone / clients should mute the current channel + /// Useful for noisy public channels you don't necessarily want to disable + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsClientMuted { + get { return isClientMuted_; } + set { + isClientMuted_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -622,6 +640,7 @@ public bool Equals(ModuleSettings other) { return true; } if (PositionPrecision != other.PositionPrecision) return false; + if (IsClientMuted != other.IsClientMuted) return false; return Equals(_unknownFields, other._unknownFields); } @@ -630,6 +649,7 @@ public bool Equals(ModuleSettings other) { public override int GetHashCode() { int hash = 1; if (PositionPrecision != 0) hash ^= PositionPrecision.GetHashCode(); + if (IsClientMuted != false) hash ^= IsClientMuted.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -652,6 +672,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt32(PositionPrecision); } + if (IsClientMuted != false) { + output.WriteRawTag(16); + output.WriteBool(IsClientMuted); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -666,6 +690,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt32(PositionPrecision); } + if (IsClientMuted != false) { + output.WriteRawTag(16); + output.WriteBool(IsClientMuted); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -679,6 +707,9 @@ public int CalculateSize() { if (PositionPrecision != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PositionPrecision); } + if (IsClientMuted != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -694,6 +725,9 @@ public void MergeFrom(ModuleSettings other) { if (other.PositionPrecision != 0) { PositionPrecision = other.PositionPrecision; } + if (other.IsClientMuted != false) { + IsClientMuted = other.IsClientMuted; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -713,6 +747,10 @@ public void MergeFrom(pb::CodedInputStream input) { PositionPrecision = input.ReadUInt32(); break; } + case 16: { + IsClientMuted = input.ReadBool(); + break; + } } } #endif @@ -732,6 +770,10 @@ public void MergeFrom(pb::CodedInputStream input) { PositionPrecision = input.ReadUInt32(); break; } + case 16: { + IsClientMuted = input.ReadBool(); + break; + } } } } diff --git a/Meshtastic/Generated/Config.cs b/Meshtastic/Generated/Config.cs index 2d071b2..0e94d7b 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( - "ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyKTHwoGQ29u", + "ChdtZXNodGFzdGljL2NvbmZpZy5wcm90bxIKbWVzaHRhc3RpYyLCHwoGQ29u", "ZmlnEjEKBmRldmljZRgBIAEoCzIfLm1lc2h0YXN0aWMuQ29uZmlnLkRldmlj", "ZUNvbmZpZ0gAEjUKCHBvc2l0aW9uGAIgASgLMiEubWVzaHRhc3RpYy5Db25m", "aWcuUG9zaXRpb25Db25maWdIABIvCgVwb3dlchgDIAEoCzIeLm1lc2h0YXN0", @@ -33,7 +33,7 @@ static ConfigReflection() { "ASgLMiAubWVzaHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZ0gAEi0KBGxv", "cmEYBiABKAsyHS5tZXNodGFzdGljLkNvbmZpZy5Mb1JhQ29uZmlnSAASNwoJ", "Ymx1ZXRvb3RoGAcgASgLMiIubWVzaHRhc3RpYy5Db25maWcuQmx1ZXRvb3Ro", - "Q29uZmlnSAAa4gQKDERldmljZUNvbmZpZxIyCgRyb2xlGAEgASgOMiQubWVz", + "Q29uZmlnSAAakQUKDERldmljZUNvbmZpZxIyCgRyb2xlGAEgASgOMiQubWVz", "aHRhc3RpYy5Db25maWcuRGV2aWNlQ29uZmlnLlJvbGUSFgoOc2VyaWFsX2Vu", "YWJsZWQYAiABKAgSGQoRZGVidWdfbG9nX2VuYWJsZWQYAyABKAgSEwoLYnV0", "dG9uX2dwaW8YBCABKA0SEwoLYnV6emVyX2dwaW8YBSABKA0SSQoQcmVicm9h", @@ -41,85 +41,86 @@ static ConfigReflection() { "bmZpZy5SZWJyb2FkY2FzdE1vZGUSIAoYbm9kZV9pbmZvX2Jyb2FkY2FzdF9z", "ZWNzGAcgASgNEiIKGmRvdWJsZV90YXBfYXNfYnV0dG9uX3ByZXNzGAggASgI", "EhIKCmlzX21hbmFnZWQYCSABKAgSHAoUZGlzYWJsZV90cmlwbGVfY2xpY2sY", - "CiABKAgiqgEKBFJvbGUSCgoGQ0xJRU5UEAASDwoLQ0xJRU5UX01VVEUQARIK", - "CgZST1VURVIQAhIRCg1ST1VURVJfQ0xJRU5UEAMSDAoIUkVQRUFURVIQBBIL", - "CgdUUkFDS0VSEAUSCgoGU0VOU09SEAYSBwoDVEFLEAcSEQoNQ0xJRU5UX0hJ", - "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")); + "CiABKAgSDQoFdHpkZWYYCyABKAkSHgoWbGVkX2hlYXJ0YmVhdF9kaXNhYmxl", + "ZBgMIAEoCCKqAQoEUm9sZRIKCgZDTElFTlQQABIPCgtDTElFTlRfTVVURRAB", + "EgoKBlJPVVRFUhACEhEKDVJPVVRFUl9DTElFTlQQAxIMCghSRVBFQVRFUhAE", + "EgsKB1RSQUNLRVIQBRIKCgZTRU5TT1IQBhIHCgNUQUsQBxIRCg1DTElFTlRf", + "SElEREVOEAgSEgoOTE9TVF9BTkRfRk9VTkQQCRIPCgtUQUtfVFJBQ0tFUhAK", + "IlEKD1JlYnJvYWRjYXN0TW9kZRIHCgNBTEwQABIVChFBTExfU0tJUF9ERUNP", + "RElORxABEg4KCkxPQ0FMX09OTFkQAhIOCgpLTk9XTl9PTkxZEAMakQUKDlBv", + "c2l0aW9uQ29uZmlnEh8KF3Bvc2l0aW9uX2Jyb2FkY2FzdF9zZWNzGAEgASgN", + "EigKIHBvc2l0aW9uX2Jyb2FkY2FzdF9zbWFydF9lbmFibGVkGAIgASgIEhYK", + "DmZpeGVkX3Bvc2l0aW9uGAMgASgIEhcKC2dwc19lbmFibGVkGAQgASgIQgIY", + "ARIbChNncHNfdXBkYXRlX2ludGVydmFsGAUgASgNEhwKEGdwc19hdHRlbXB0", + "X3RpbWUYBiABKA1CAhgBEhYKDnBvc2l0aW9uX2ZsYWdzGAcgASgNEg8KB3J4", + "X2dwaW8YCCABKA0SDwoHdHhfZ3BpbxgJIAEoDRIoCiBicm9hZGNhc3Rfc21h", + "cnRfbWluaW11bV9kaXN0YW5jZRgKIAEoDRItCiVicm9hZGNhc3Rfc21hcnRf", + "bWluaW11bV9pbnRlcnZhbF9zZWNzGAsgASgNEhMKC2dwc19lbl9ncGlvGAwg", + "ASgNEjsKCGdwc19tb2RlGA0gASgOMikubWVzaHRhc3RpYy5Db25maWcuUG9z", + "aXRpb25Db25maWcuR3BzTW9kZSKrAQoNUG9zaXRpb25GbGFncxIJCgVVTlNF", + "VBAAEgwKCEFMVElUVURFEAESEAoMQUxUSVRVREVfTVNMEAISFgoSR0VPSURB", + "TF9TRVBBUkFUSU9OEAQSBwoDRE9QEAgSCQoFSFZET1AQEBINCglTQVRJTlZJ", + "RVcQIBIKCgZTRVFfTk8QQBIOCglUSU1FU1RBTVAQgAESDAoHSEVBRElORxCA", + "AhIKCgVTUEVFRBCABCI1CgdHcHNNb2RlEgwKCERJU0FCTEVEEAASCwoHRU5B", + "QkxFRBABEg8KC05PVF9QUkVTRU5UEAIa6gEKC1Bvd2VyQ29uZmlnEhcKD2lz", + "X3Bvd2VyX3NhdmluZxgBIAEoCBImCh5vbl9iYXR0ZXJ5X3NodXRkb3duX2Fm", + "dGVyX3NlY3MYAiABKA0SHwoXYWRjX211bHRpcGxpZXJfb3ZlcnJpZGUYAyAB", + "KAISGwoTd2FpdF9ibHVldG9vdGhfc2VjcxgEIAEoDRIQCghzZHNfc2VjcxgG", + "IAEoDRIPCgdsc19zZWNzGAcgASgNEhUKDW1pbl93YWtlX3NlY3MYCCABKA0S", + "IgoaZGV2aWNlX2JhdHRlcnlfaW5hX2FkZHJlc3MYCSABKA0a/gIKDU5ldHdv", + "cmtDb25maWcSFAoMd2lmaV9lbmFibGVkGAEgASgIEhEKCXdpZmlfc3NpZBgD", + "IAEoCRIQCgh3aWZpX3BzaxgEIAEoCRISCgpudHBfc2VydmVyGAUgASgJEhMK", + "C2V0aF9lbmFibGVkGAYgASgIEkIKDGFkZHJlc3NfbW9kZRgHIAEoDjIsLm1l", + "c2h0YXN0aWMuQ29uZmlnLk5ldHdvcmtDb25maWcuQWRkcmVzc01vZGUSQAoL", + "aXB2NF9jb25maWcYCCABKAsyKy5tZXNodGFzdGljLkNvbmZpZy5OZXR3b3Jr", + "Q29uZmlnLklwVjRDb25maWcSFgoOcnN5c2xvZ19zZXJ2ZXIYCSABKAkaRgoK", + "SXBWNENvbmZpZxIKCgJpcBgBIAEoBxIPCgdnYXRld2F5GAIgASgHEg4KBnN1", + "Ym5ldBgDIAEoBxILCgNkbnMYBCABKAciIwoLQWRkcmVzc01vZGUSCAoEREhD", + "UBAAEgoKBlNUQVRJQxABGr4FCg1EaXNwbGF5Q29uZmlnEhYKDnNjcmVlbl9v", + "bl9zZWNzGAEgASgNEkgKCmdwc19mb3JtYXQYAiABKA4yNC5tZXNodGFzdGlj", + "LkNvbmZpZy5EaXNwbGF5Q29uZmlnLkdwc0Nvb3JkaW5hdGVGb3JtYXQSIQoZ", + "YXV0b19zY3JlZW5fY2Fyb3VzZWxfc2VjcxgDIAEoDRIZChFjb21wYXNzX25v", + "cnRoX3RvcBgEIAEoCBITCgtmbGlwX3NjcmVlbhgFIAEoCBI8CgV1bml0cxgG", + "IAEoDjItLm1lc2h0YXN0aWMuQ29uZmlnLkRpc3BsYXlDb25maWcuRGlzcGxh", + "eVVuaXRzEjcKBG9sZWQYByABKA4yKS5tZXNodGFzdGljLkNvbmZpZy5EaXNw", + "bGF5Q29uZmlnLk9sZWRUeXBlEkEKC2Rpc3BsYXltb2RlGAggASgOMiwubWVz", + "aHRhc3RpYy5Db25maWcuRGlzcGxheUNvbmZpZy5EaXNwbGF5TW9kZRIUCgxo", + "ZWFkaW5nX2JvbGQYCSABKAgSHQoVd2FrZV9vbl90YXBfb3JfbW90aW9uGAog", + "ASgIIk0KE0dwc0Nvb3JkaW5hdGVGb3JtYXQSBwoDREVDEAASBwoDRE1TEAES", + "BwoDVVRNEAISCAoETUdSUxADEgcKA09MQxAEEggKBE9TR1IQBSIoCgxEaXNw", + "bGF5VW5pdHMSCgoGTUVUUklDEAASDAoISU1QRVJJQUwQASJNCghPbGVkVHlw", + "ZRINCglPTEVEX0FVVE8QABIQCgxPTEVEX1NTRDEzMDYQARIPCgtPTEVEX1NI", + "MTEwNhACEg8KC09MRURfU0gxMTA3EAMiQQoLRGlzcGxheU1vZGUSCwoHREVG", + "QVVMVBAAEgwKCFRXT0NPTE9SEAESDAoISU5WRVJURUQQAhIJCgVDT0xPUhAD", + "GrAGCgpMb1JhQ29uZmlnEhIKCnVzZV9wcmVzZXQYASABKAgSPwoMbW9kZW1f", + "cHJlc2V0GAIgASgOMikubWVzaHRhc3RpYy5Db25maWcuTG9SYUNvbmZpZy5N", + "b2RlbVByZXNldBIRCgliYW5kd2lkdGgYAyABKA0SFQoNc3ByZWFkX2ZhY3Rv", + "chgEIAEoDRITCgtjb2RpbmdfcmF0ZRgFIAEoDRIYChBmcmVxdWVuY3lfb2Zm", + "c2V0GAYgASgCEjgKBnJlZ2lvbhgHIAEoDjIoLm1lc2h0YXN0aWMuQ29uZmln", + "LkxvUmFDb25maWcuUmVnaW9uQ29kZRIRCglob3BfbGltaXQYCCABKA0SEgoK", + "dHhfZW5hYmxlZBgJIAEoCBIQCgh0eF9wb3dlchgKIAEoBRITCgtjaGFubmVs", + "X251bRgLIAEoDRIbChNvdmVycmlkZV9kdXR5X2N5Y2xlGAwgASgIEh4KFnN4", + "MTI2eF9yeF9ib29zdGVkX2dhaW4YDSABKAgSGgoSb3ZlcnJpZGVfZnJlcXVl", + "bmN5GA4gASgCEhcKD2lnbm9yZV9pbmNvbWluZxhnIAMoDRITCgtpZ25vcmVf", + "bXF0dBhoIAEoCCLNAQoKUmVnaW9uQ29kZRIJCgVVTlNFVBAAEgYKAlVTEAES", + "CgoGRVVfNDMzEAISCgoGRVVfODY4EAMSBgoCQ04QBBIGCgJKUBAFEgcKA0FO", + "WhAGEgYKAktSEAcSBgoCVFcQCBIGCgJSVRAJEgYKAklOEAoSCgoGTlpfODY1", + "EAsSBgoCVEgQDBILCgdMT1JBXzI0EA0SCgoGVUFfNDMzEA4SCgoGVUFfODY4", + "EA8SCgoGTVlfNDMzEBASCgoGTVlfOTE5EBESCgoGU0dfOTIzEBIilAEKC01v", + "ZGVtUHJlc2V0Eg0KCUxPTkdfRkFTVBAAEg0KCUxPTkdfU0xPVxABEhIKDlZF", + "UllfTE9OR19TTE9XEAISDwoLTUVESVVNX1NMT1cQAxIPCgtNRURJVU1fRkFT", + "VBAEEg4KClNIT1JUX1NMT1cQBRIOCgpTSE9SVF9GQVNUEAYSEQoNTE9OR19N", + "T0RFUkFURRAHGq0BCg9CbHVldG9vdGhDb25maWcSDwoHZW5hYmxlZBgBIAEo", + "CBI8CgRtb2RlGAIgASgOMi4ubWVzaHRhc3RpYy5Db25maWcuQmx1ZXRvb3Ro", + "Q29uZmlnLlBhaXJpbmdNb2RlEhEKCWZpeGVkX3BpbhgDIAEoDSI4CgtQYWly", + "aW5nTW9kZRIOCgpSQU5ET01fUElOEAASDQoJRklYRURfUElOEAESCgoGTk9f", + "UElOEAJCEQoPcGF5bG9hZF92YXJpYW50QmEKE2NvbS5nZWVrc3ZpbGxlLm1l", + "c2hCDENvbmZpZ1Byb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFzdGljL2dvL2dl", + "bmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZwcm90bzM=")); 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), 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", "Tzdef", "LedHeartbeatDisabled" }, 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", "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)}), @@ -733,6 +734,8 @@ public DeviceConfig(DeviceConfig other) : this() { doubleTapAsButtonPress_ = other.doubleTapAsButtonPress_; isManaged_ = other.isManaged_; disableTripleClick_ = other.disableTripleClick_; + tzdef_ = other.tzdef_; + ledHeartbeatDisabled_ = other.ledHeartbeatDisabled_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -907,6 +910,38 @@ public bool DisableTripleClick { } } + /// Field number for the "tzdef" field. + public const int TzdefFieldNumber = 11; + private string tzdef_ = ""; + /// + /// + /// POSIX Timezone definition string from https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Tzdef { + get { return tzdef_; } + set { + tzdef_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "led_heartbeat_disabled" field. + public const int LedHeartbeatDisabledFieldNumber = 12; + private bool ledHeartbeatDisabled_; + /// + /// + /// If true, disable the default blinking LED (LED_PIN) behavior on the device + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool LedHeartbeatDisabled { + get { return ledHeartbeatDisabled_; } + set { + ledHeartbeatDisabled_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -932,6 +967,8 @@ public bool Equals(DeviceConfig other) { if (DoubleTapAsButtonPress != other.DoubleTapAsButtonPress) return false; if (IsManaged != other.IsManaged) return false; if (DisableTripleClick != other.DisableTripleClick) return false; + if (Tzdef != other.Tzdef) return false; + if (LedHeartbeatDisabled != other.LedHeartbeatDisabled) return false; return Equals(_unknownFields, other._unknownFields); } @@ -949,6 +986,8 @@ public override int GetHashCode() { if (DoubleTapAsButtonPress != false) hash ^= DoubleTapAsButtonPress.GetHashCode(); if (IsManaged != false) hash ^= IsManaged.GetHashCode(); if (DisableTripleClick != false) hash ^= DisableTripleClick.GetHashCode(); + if (Tzdef.Length != 0) hash ^= Tzdef.GetHashCode(); + if (LedHeartbeatDisabled != false) hash ^= LedHeartbeatDisabled.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1007,6 +1046,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(80); output.WriteBool(DisableTripleClick); } + if (Tzdef.Length != 0) { + output.WriteRawTag(90); + output.WriteString(Tzdef); + } + if (LedHeartbeatDisabled != false) { + output.WriteRawTag(96); + output.WriteBool(LedHeartbeatDisabled); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1057,6 +1104,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(80); output.WriteBool(DisableTripleClick); } + if (Tzdef.Length != 0) { + output.WriteRawTag(90); + output.WriteString(Tzdef); + } + if (LedHeartbeatDisabled != false) { + output.WriteRawTag(96); + output.WriteBool(LedHeartbeatDisabled); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1097,6 +1152,12 @@ public int CalculateSize() { if (DisableTripleClick != false) { size += 1 + 1; } + if (Tzdef.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Tzdef); + } + if (LedHeartbeatDisabled != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1139,6 +1200,12 @@ public void MergeFrom(DeviceConfig other) { if (other.DisableTripleClick != false) { DisableTripleClick = other.DisableTripleClick; } + if (other.Tzdef.Length != 0) { + Tzdef = other.Tzdef; + } + if (other.LedHeartbeatDisabled != false) { + LedHeartbeatDisabled = other.LedHeartbeatDisabled; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1194,6 +1261,14 @@ public void MergeFrom(pb::CodedInputStream input) { DisableTripleClick = input.ReadBool(); break; } + case 90: { + Tzdef = input.ReadString(); + break; + } + case 96: { + LedHeartbeatDisabled = input.ReadBool(); + break; + } } } #endif @@ -1249,6 +1324,14 @@ public void MergeFrom(pb::CodedInputStream input) { DisableTripleClick = input.ReadBool(); break; } + case 90: { + Tzdef = input.ReadString(); + break; + } + case 96: { + LedHeartbeatDisabled = input.ReadBool(); + break; + } } } } @@ -1299,7 +1382,7 @@ public enum Role { /// /// 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, + /// 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, @@ -1307,7 +1390,7 @@ public enum Role { /// /// 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, + /// 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, @@ -1325,13 +1408,13 @@ public enum Role { /// 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 + /// Can be used for clandestine operation or to dramatically reduce airtime / power consumption /// [pbr::OriginalName("CLIENT_HIDDEN")] ClientHidden = 8, /// /// /// 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 + /// 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" /// @@ -2237,10 +2320,9 @@ public PowerConfig Clone() { private bool isPowerSaving_; /// /// - /// If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in - /// we should try to minimize power consumption as much as possible. - /// YOU DO NOT NEED TO SET THIS IF YOU'VE set is_router (it is implied in that case). - /// Advanced Option + /// Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio. + /// Don't use this setting if you want to use your device with the phone apps or are using a device without a user button. + /// Technical Details: Works for ESP32 devices and NRF52 devices in the Sensor or Tracker roles /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2256,7 +2338,7 @@ public bool IsPowerSaving { private uint onBatteryShutdownAfterSecs_; /// /// - /// If non-zero, the device will fully power off this many seconds after external power is removed. + /// Description: If non-zero, the device will fully power off this many seconds after external power is removed. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2274,8 +2356,8 @@ public uint OnBatteryShutdownAfterSecs { /// /// Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k) /// Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation. - /// Should be set to floating point value between 2 and 4 - /// Fixes issues on Heltec v2 + /// https://meshtastic.org/docs/configuration/radio/power/#adc-multiplier-override + /// Should be set to floating point value between 2 and 6 /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2291,9 +2373,8 @@ public float AdcMultiplierOverride { private uint waitBluetoothSecs_; /// /// - /// Wait Bluetooth Seconds - /// The number of seconds for to wait before turning off BLE in No Bluetooth states - /// 0 for default of 1 minute + /// Description: The number of seconds for to wait before turning off BLE in No Bluetooth states + /// Technical Details: ESP32 Only 0 for default of 1 minute /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2328,10 +2409,8 @@ public uint SdsSecs { private uint lsSecs_; /// /// - /// Light Sleep Seconds - /// In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on - /// ESP32 Only - /// 0 for default of 300 + /// Description: In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on + /// Technical Details: ESP32 Only 0 for default of 300 /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2347,9 +2426,8 @@ public uint LsSecs { private uint minWakeSecs_; /// /// - /// Minimum Wake Seconds - /// While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value - /// 0 for default of 10 seconds + /// Description: While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value + /// Technical Details: ESP32 Only 0 for default of 10 seconds /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/Meshtastic/Generated/Mesh.cs b/Meshtastic/Generated/Mesh.cs index 2247634..5568250 100644 --- a/Meshtastic/Generated/Mesh.cs +++ b/Meshtastic/Generated/Mesh.cs @@ -129,7 +129,7 @@ static MeshReflection() { "dGljLkhhcmR3YXJlTW9kZWwSGQoRaGFzUmVtb3RlSGFyZHdhcmUYCiABKAgi", "CwoJSGVhcnRiZWF0IlUKFU5vZGVSZW1vdGVIYXJkd2FyZVBpbhIQCghub2Rl", "X251bRgBIAEoDRIqCgNwaW4YAiABKAsyHS5tZXNodGFzdGljLlJlbW90ZUhh", - "cmR3YXJlUGluKtQHCg1IYXJkd2FyZU1vZGVsEgkKBVVOU0VUEAASDAoIVExP", + "cmR3YXJlUGluKpUICg1IYXJkd2FyZU1vZGVsEgkKBVVOU0VUEAASDAoIVExP", "UkFfVjIQARIMCghUTE9SQV9WMRACEhIKDlRMT1JBX1YyXzFfMVA2EAMSCQoF", "VEJFQU0QBBIPCgtIRUxURUNfVjJfMBAFEg4KClRCRUFNX1YwUDcQBhIKCgZU", "X0VDSE8QBxIQCgxUTE9SQV9WMV8xUDMQCBILCgdSQUs0NjMxEAkSDwoLSEVM", @@ -150,16 +150,18 @@ static MeshReflection() { "QVRDSF9TMxAzEhEKDVBJQ09NUFVURVJfUzMQNBIPCgtIRUxURUNfSFQ2MhA1", "EhIKDkVCWVRFX0VTUDMyX1MzEDYSEQoNRVNQMzJfUzNfUElDTxA3Eg0KCUNI", "QVRURVJfMhA4Eh4KGkhFTFRFQ19XSVJFTEVTU19QQVBFUl9WMV8wEDkSIAoc", - "SEVMVEVDX1dJUkVMRVNTX1RSQUNLRVJfVjFfMBA6Eg8KClBSSVZBVEVfSFcQ", - "/wEqLAoJQ29uc3RhbnRzEggKBFpFUk8QABIVChBEQVRBX1BBWUxPQURfTEVO", - "EO0BKu4BChFDcml0aWNhbEVycm9yQ29kZRIICgROT05FEAASDwoLVFhfV0FU", - "Q0hET0cQARIUChBTTEVFUF9FTlRFUl9XQUlUEAISDAoITk9fUkFESU8QAxIP", - "CgtVTlNQRUNJRklFRBAEEhUKEVVCTE9YX1VOSVRfRkFJTEVEEAUSDQoJTk9f", - "QVhQMTkyEAYSGQoVSU5WQUxJRF9SQURJT19TRVRUSU5HEAcSEwoPVFJBTlNN", - "SVRfRkFJTEVEEAgSDAoIQlJPV05PVVQQCRISCg5TWDEyNjJfRkFJTFVSRRAK", - "EhEKDVJBRElPX1NQSV9CVUcQC0JfChNjb20uZ2Vla3N2aWxsZS5tZXNoQgpN", - "ZXNoUHJvdG9zWiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVk", - "qgIUTWVzaHRhc3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); + "SEVMVEVDX1dJUkVMRVNTX1RSQUNLRVJfVjFfMBA6EgsKB1VOUEhPTkUQOxIM", + "CghURF9MT1JBQxA8EhMKD0NERUJZVEVfRU9SQV9TMxA9Eg8KC1RXQ19NRVNI", + "X1Y0ED4SDwoKUFJJVkFURV9IVxD/ASosCglDb25zdGFudHMSCAoEWkVSTxAA", + "EhUKEERBVEFfUEFZTE9BRF9MRU4Q7QEq7gEKEUNyaXRpY2FsRXJyb3JDb2Rl", + "EggKBE5PTkUQABIPCgtUWF9XQVRDSERPRxABEhQKEFNMRUVQX0VOVEVSX1dB", + "SVQQAhIMCghOT19SQURJTxADEg8KC1VOU1BFQ0lGSUVEEAQSFQoRVUJMT1hf", + "VU5JVF9GQUlMRUQQBRINCglOT19BWFAxOTIQBhIZChVJTlZBTElEX1JBRElP", + "X1NFVFRJTkcQBxITCg9UUkFOU01JVF9GQUlMRUQQCBIMCghCUk9XTk9VVBAJ", + "EhIKDlNYMTI2Ml9GQUlMVVJFEAoSEQoNUkFESU9fU1BJX0JVRxALQl8KE2Nv", + "bS5nZWVrc3ZpbGxlLm1lc2hCCk1lc2hQcm90b3NaImdpdGh1Yi5jb20vbWVz", + "aHRhc3RpYy9nby9nZW5lcmF0ZWSqAhRNZXNodGFzdGljLlByb3RvYnVmc7oC", + "AGIGcHJvdG8z")); 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[] { @@ -481,6 +483,28 @@ public enum HardwareModel { [pbr::OriginalName("HELTEC_WIRELESS_TRACKER_V1_0")] HeltecWirelessTrackerV10 = 58, /// /// + /// unPhone with ESP32-S3, TFT touchscreen, LSM6DS3TR-C accelerometer and gyroscope + /// + [pbr::OriginalName("UNPHONE")] Unphone = 59, + /// + /// + /// Teledatics TD-LORAC NRF52840 based M.2 LoRA module + /// Compatible with the TD-WRLS development board + /// + [pbr::OriginalName("TD_LORAC")] TdLorac = 60, + /// + /// + /// CDEBYTE EoRa-S3 board using their own MM modules, clone of LILYGO T3S3 + /// + [pbr::OriginalName("CDEBYTE_EORA_S3")] CdebyteEoraS3 = 61, + /// + /// + /// TWC_MESH_V4 + /// Adafruit NRF52840 feather express with SX1262, SSD1306 OLED and NEO6M GPS + /// + [pbr::OriginalName("TWC_MESH_V4")] TwcMeshV4 = 62, + /// + /// /// ------------------------------------------------------------------------------------------------------------------------------------------ /// 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. /// ------------------------------------------------------------------------------------------------------------------------------------------ @@ -4519,8 +4543,8 @@ public bool ViaMqtt { 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. + /// + /// 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] @@ -9605,7 +9629,7 @@ 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. /// diff --git a/Meshtastic/Generated/Mqtt.cs b/Meshtastic/Generated/Mqtt.cs index 556d279..b4939df 100644 --- a/Meshtastic/Generated/Mqtt.cs +++ b/Meshtastic/Generated/Mqtt.cs @@ -24,8 +24,8 @@ public static partial class MqttReflection { static MqttReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChVtZXNodGFzdGljL21xdHQucHJvdG8SCm1lc2h0YXN0aWMaFW1lc2h0YXN0", - "aWMvbWVzaC5wcm90bxoXbWVzaHRhc3RpYy9jb25maWcucHJvdG8iYQoPU2Vy", + "ChVtZXNodGFzdGljL21xdHQucHJvdG8SCm1lc2h0YXN0aWMaF21lc2h0YXN0", + "aWMvY29uZmlnLnByb3RvGhVtZXNodGFzdGljL21lc2gucHJvdG8iYQoPU2Vy", "dmljZUVudmVsb3BlEiYKBnBhY2tldBgBIAEoCzIWLm1lc2h0YXN0aWMuTWVz", "aFBhY2tldBISCgpjaGFubmVsX2lkGAIgASgJEhIKCmdhdGV3YXlfaWQYAyAB", "KAkivAMKCU1hcFJlcG9ydBIRCglsb25nX25hbWUYASABKAkSEgoKc2hvcnRf", @@ -42,7 +42,7 @@ static MqttReflection() { "bS9tZXNodGFzdGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9i", "dWZzugIAYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.MeshReflection.Descriptor, global::Meshtastic.Protobufs.ConfigReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Meshtastic.Protobufs.ConfigReflection.Descriptor, global::Meshtastic.Protobufs.MeshReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.ServiceEnvelope), global::Meshtastic.Protobufs.ServiceEnvelope.Parser, new[]{ "Packet", "ChannelId", "GatewayId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.MapReport), global::Meshtastic.Protobufs.MapReport.Parser, new[]{ "LongName", "ShortName", "Role", "HwModel", "FirmwareVersion", "Region", "ModemPreset", "HasDefaultChannel", "LatitudeI", "LongitudeI", "Altitude", "PositionPrecision", "NumOnlineLocalNodes" }, null, null, null, null) diff --git a/Meshtastic/Generated/Telemetry.cs b/Meshtastic/Generated/Telemetry.cs index ba3fea4..fd8236b 100644 --- a/Meshtastic/Generated/Telemetry.cs +++ b/Meshtastic/Generated/Telemetry.cs @@ -24,42 +24,44 @@ public static partial class TelemetryReflection { static TelemetryReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChptZXNodGFzdGljL3RlbGVtZXRyeS5wcm90bxIKbWVzaHRhc3RpYyJpCg1E", - "ZXZpY2VNZXRyaWNzEhUKDWJhdHRlcnlfbGV2ZWwYASABKA0SDwoHdm9sdGFn", - "ZRgCIAEoAhIbChNjaGFubmVsX3V0aWxpemF0aW9uGAMgASgCEhMKC2Fpcl91", - "dGlsX3R4GAQgASgCIpsBChJFbnZpcm9ubWVudE1ldHJpY3MSEwoLdGVtcGVy", - "YXR1cmUYASABKAISGQoRcmVsYXRpdmVfaHVtaWRpdHkYAiABKAISGwoTYmFy", - "b21ldHJpY19wcmVzc3VyZRgDIAEoAhIWCg5nYXNfcmVzaXN0YW5jZRgEIAEo", - "AhIPCgd2b2x0YWdlGAUgASgCEg8KB2N1cnJlbnQYBiABKAIijAEKDFBvd2Vy", - "TWV0cmljcxITCgtjaDFfdm9sdGFnZRgBIAEoAhITCgtjaDFfY3VycmVudBgC", - "IAEoAhITCgtjaDJfdm9sdGFnZRgDIAEoAhITCgtjaDJfY3VycmVudBgEIAEo", - "AhITCgtjaDNfdm9sdGFnZRgFIAEoAhITCgtjaDNfY3VycmVudBgGIAEoAiK/", - "AgoRQWlyUXVhbGl0eU1ldHJpY3MSFQoNcG0xMF9zdGFuZGFyZBgBIAEoDRIV", - "Cg1wbTI1X3N0YW5kYXJkGAIgASgNEhYKDnBtMTAwX3N0YW5kYXJkGAMgASgN", - "EhoKEnBtMTBfZW52aXJvbm1lbnRhbBgEIAEoDRIaChJwbTI1X2Vudmlyb25t", - "ZW50YWwYBSABKA0SGwoTcG0xMDBfZW52aXJvbm1lbnRhbBgGIAEoDRIWCg5w", - "YXJ0aWNsZXNfMDN1bRgHIAEoDRIWCg5wYXJ0aWNsZXNfMDV1bRgIIAEoDRIW", - "Cg5wYXJ0aWNsZXNfMTB1bRgJIAEoDRIWCg5wYXJ0aWNsZXNfMjV1bRgKIAEo", - "DRIWCg5wYXJ0aWNsZXNfNTB1bRgLIAEoDRIXCg9wYXJ0aWNsZXNfMTAwdW0Y", - "DCABKA0iiQIKCVRlbGVtZXRyeRIMCgR0aW1lGAEgASgHEjMKDmRldmljZV9t", - "ZXRyaWNzGAIgASgLMhkubWVzaHRhc3RpYy5EZXZpY2VNZXRyaWNzSAASPQoT", - "ZW52aXJvbm1lbnRfbWV0cmljcxgDIAEoCzIeLm1lc2h0YXN0aWMuRW52aXJv", - "bm1lbnRNZXRyaWNzSAASPAoTYWlyX3F1YWxpdHlfbWV0cmljcxgEIAEoCzId", - "Lm1lc2h0YXN0aWMuQWlyUXVhbGl0eU1ldHJpY3NIABIxCg1wb3dlcl9tZXRy", - "aWNzGAUgASgLMhgubWVzaHRhc3RpYy5Qb3dlck1ldHJpY3NIAEIJCgd2YXJp", - "YW50KuABChNUZWxlbWV0cnlTZW5zb3JUeXBlEhAKDFNFTlNPUl9VTlNFVBAA", - "EgoKBkJNRTI4MBABEgoKBkJNRTY4MBACEgsKB01DUDk4MDgQAxIKCgZJTkEy", - "NjAQBBIKCgZJTkEyMTkQBRIKCgZCTVAyODAQBhIJCgVTSFRDMxAHEgkKBUxQ", - "UzIyEAgSCwoHUU1DNjMxMBAJEgsKB1FNSTg2NTgQChIMCghRTUM1ODgzTBAL", - "EgkKBVNIVDMxEAwSDAoIUE1TQTAwM0kQDRILCgdJTkEzMjIxEA4SCgoGQk1Q", - "MDg1EA9CZAoTY29tLmdlZWtzdmlsbGUubWVzaEIPVGVsZW1ldHJ5UHJvdG9z", - "WiJnaXRodWIuY29tL21lc2h0YXN0aWMvZ28vZ2VuZXJhdGVkqgIUTWVzaHRh", - "c3RpYy5Qcm90b2J1ZnO6AgBiBnByb3RvMw==")); + "ChptZXNodGFzdGljL3RlbGVtZXRyeS5wcm90bxIKbWVzaHRhc3RpYyKBAQoN", + "RGV2aWNlTWV0cmljcxIVCg1iYXR0ZXJ5X2xldmVsGAEgASgNEg8KB3ZvbHRh", + "Z2UYAiABKAISGwoTY2hhbm5lbF91dGlsaXphdGlvbhgDIAEoAhITCgthaXJf", + "dXRpbF90eBgEIAEoAhIWCg51cHRpbWVfc2Vjb25kcxgFIAEoDSK6AQoSRW52", + "aXJvbm1lbnRNZXRyaWNzEhMKC3RlbXBlcmF0dXJlGAEgASgCEhkKEXJlbGF0", + "aXZlX2h1bWlkaXR5GAIgASgCEhsKE2Jhcm9tZXRyaWNfcHJlc3N1cmUYAyAB", + "KAISFgoOZ2FzX3Jlc2lzdGFuY2UYBCABKAISDwoHdm9sdGFnZRgFIAEoAhIP", + "CgdjdXJyZW50GAYgASgCEgsKA2lhcRgHIAEoDRIQCghkaXN0YW5jZRgIIAEo", + "AiKMAQoMUG93ZXJNZXRyaWNzEhMKC2NoMV92b2x0YWdlGAEgASgCEhMKC2No", + "MV9jdXJyZW50GAIgASgCEhMKC2NoMl92b2x0YWdlGAMgASgCEhMKC2NoMl9j", + "dXJyZW50GAQgASgCEhMKC2NoM192b2x0YWdlGAUgASgCEhMKC2NoM19jdXJy", + "ZW50GAYgASgCIr8CChFBaXJRdWFsaXR5TWV0cmljcxIVCg1wbTEwX3N0YW5k", + "YXJkGAEgASgNEhUKDXBtMjVfc3RhbmRhcmQYAiABKA0SFgoOcG0xMDBfc3Rh", + "bmRhcmQYAyABKA0SGgoScG0xMF9lbnZpcm9ubWVudGFsGAQgASgNEhoKEnBt", + "MjVfZW52aXJvbm1lbnRhbBgFIAEoDRIbChNwbTEwMF9lbnZpcm9ubWVudGFs", + "GAYgASgNEhYKDnBhcnRpY2xlc18wM3VtGAcgASgNEhYKDnBhcnRpY2xlc18w", + "NXVtGAggASgNEhYKDnBhcnRpY2xlc18xMHVtGAkgASgNEhYKDnBhcnRpY2xl", + "c18yNXVtGAogASgNEhYKDnBhcnRpY2xlc181MHVtGAsgASgNEhcKD3BhcnRp", + "Y2xlc18xMDB1bRgMIAEoDSKJAgoJVGVsZW1ldHJ5EgwKBHRpbWUYASABKAcS", + "MwoOZGV2aWNlX21ldHJpY3MYAiABKAsyGS5tZXNodGFzdGljLkRldmljZU1l", + "dHJpY3NIABI9ChNlbnZpcm9ubWVudF9tZXRyaWNzGAMgASgLMh4ubWVzaHRh", + "c3RpYy5FbnZpcm9ubWVudE1ldHJpY3NIABI8ChNhaXJfcXVhbGl0eV9tZXRy", + "aWNzGAQgASgLMh0ubWVzaHRhc3RpYy5BaXJRdWFsaXR5TWV0cmljc0gAEjEK", + "DXBvd2VyX21ldHJpY3MYBSABKAsyGC5tZXNodGFzdGljLlBvd2VyTWV0cmlj", + "c0gAQgkKB3ZhcmlhbnQq7gEKE1RlbGVtZXRyeVNlbnNvclR5cGUSEAoMU0VO", + "U09SX1VOU0VUEAASCgoGQk1FMjgwEAESCgoGQk1FNjgwEAISCwoHTUNQOTgw", + "OBADEgoKBklOQTI2MBAEEgoKBklOQTIxORAFEgoKBkJNUDI4MBAGEgkKBVNI", + "VEMzEAcSCQoFTFBTMjIQCBILCgdRTUM2MzEwEAkSCwoHUU1JODY1OBAKEgwK", + "CFFNQzU4ODNMEAsSCQoFU0hUMzEQDBIMCghQTVNBMDAzSRANEgsKB0lOQTMy", + "MjEQDhIKCgZCTVAwODUQDxIMCghSQ1dMOTYyMBAQQmQKE2NvbS5nZWVrc3Zp", + "bGxlLm1lc2hCD1RlbGVtZXRyeVByb3Rvc1oiZ2l0aHViLmNvbS9tZXNodGFz", + "dGljL2dvL2dlbmVyYXRlZKoCFE1lc2h0YXN0aWMuUHJvdG9idWZzugIAYgZw", + "cm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Meshtastic.Protobufs.TelemetrySensorType), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.DeviceMetrics), global::Meshtastic.Protobufs.DeviceMetrics.Parser, new[]{ "BatteryLevel", "Voltage", "ChannelUtilization", "AirUtilTx" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.EnvironmentMetrics), global::Meshtastic.Protobufs.EnvironmentMetrics.Parser, new[]{ "Temperature", "RelativeHumidity", "BarometricPressure", "GasResistance", "Voltage", "Current" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.DeviceMetrics), global::Meshtastic.Protobufs.DeviceMetrics.Parser, new[]{ "BatteryLevel", "Voltage", "ChannelUtilization", "AirUtilTx", "UptimeSeconds" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.EnvironmentMetrics), global::Meshtastic.Protobufs.EnvironmentMetrics.Parser, new[]{ "Temperature", "RelativeHumidity", "BarometricPressure", "GasResistance", "Voltage", "Current", "Iaq", "Distance" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.PowerMetrics), global::Meshtastic.Protobufs.PowerMetrics.Parser, new[]{ "Ch1Voltage", "Ch1Current", "Ch2Voltage", "Ch2Current", "Ch3Voltage", "Ch3Current" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.AirQualityMetrics), global::Meshtastic.Protobufs.AirQualityMetrics.Parser, new[]{ "Pm10Standard", "Pm25Standard", "Pm100Standard", "Pm10Environmental", "Pm25Environmental", "Pm100Environmental", "Particles03Um", "Particles05Um", "Particles10Um", "Particles25Um", "Particles50Um", "Particles100Um" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Meshtastic.Protobufs.Telemetry), global::Meshtastic.Protobufs.Telemetry.Parser, new[]{ "Time", "DeviceMetrics", "EnvironmentMetrics", "AirQualityMetrics", "PowerMetrics" }, new[]{ "Variant" }, null, null, null) @@ -154,6 +156,11 @@ public enum TelemetrySensorType { /// BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280) /// [pbr::OriginalName("BMP085")] Bmp085 = 15, + /// + /// + /// RCWL-9620 Doppler Radar Distance Sensor, used for water level detection + /// + [pbr::OriginalName("RCWL9620")] Rcwl9620 = 16, } #endregion @@ -201,6 +208,7 @@ public DeviceMetrics(DeviceMetrics other) : this() { voltage_ = other.voltage_; channelUtilization_ = other.channelUtilization_; airUtilTx_ = other.airUtilTx_; + uptimeSeconds_ = other.uptimeSeconds_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -274,6 +282,22 @@ public float AirUtilTx { } } + /// Field number for the "uptime_seconds" field. + public const int UptimeSecondsFieldNumber = 5; + private uint uptimeSeconds_; + /// + /// + /// How long the device has been running since the last reboot (in seconds) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint UptimeSeconds { + get { return uptimeSeconds_; } + set { + uptimeSeconds_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -293,6 +317,7 @@ public bool Equals(DeviceMetrics other) { if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Voltage, other.Voltage)) return false; if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ChannelUtilization, other.ChannelUtilization)) return false; if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(AirUtilTx, other.AirUtilTx)) return false; + if (UptimeSeconds != other.UptimeSeconds) return false; return Equals(_unknownFields, other._unknownFields); } @@ -304,6 +329,7 @@ public override int GetHashCode() { if (Voltage != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Voltage); if (ChannelUtilization != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ChannelUtilization); if (AirUtilTx != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(AirUtilTx); + if (UptimeSeconds != 0) hash ^= UptimeSeconds.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -338,6 +364,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(37); output.WriteFloat(AirUtilTx); } + if (UptimeSeconds != 0) { + output.WriteRawTag(40); + output.WriteUInt32(UptimeSeconds); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -364,6 +394,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(37); output.WriteFloat(AirUtilTx); } + if (UptimeSeconds != 0) { + output.WriteRawTag(40); + output.WriteUInt32(UptimeSeconds); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -386,6 +420,9 @@ public int CalculateSize() { if (AirUtilTx != 0F) { size += 1 + 4; } + if (UptimeSeconds != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(UptimeSeconds); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -410,6 +447,9 @@ public void MergeFrom(DeviceMetrics other) { if (other.AirUtilTx != 0F) { AirUtilTx = other.AirUtilTx; } + if (other.UptimeSeconds != 0) { + UptimeSeconds = other.UptimeSeconds; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -441,6 +481,10 @@ public void MergeFrom(pb::CodedInputStream input) { AirUtilTx = input.ReadFloat(); break; } + case 40: { + UptimeSeconds = input.ReadUInt32(); + break; + } } } #endif @@ -472,6 +516,10 @@ public void MergeFrom(pb::CodedInputStream input) { AirUtilTx = input.ReadFloat(); break; } + case 40: { + UptimeSeconds = input.ReadUInt32(); + break; + } } } } @@ -523,6 +571,8 @@ public EnvironmentMetrics(EnvironmentMetrics other) : this() { gasResistance_ = other.gasResistance_; voltage_ = other.voltage_; current_ = other.current_; + iaq_ = other.iaq_; + distance_ = other.distance_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -628,6 +678,39 @@ public float Current { } } + /// Field number for the "iaq" field. + public const int IaqFieldNumber = 7; + private uint iaq_; + /// + /// + /// relative scale IAQ value as measured by Bosch BME680 . value 0-500. + /// Belongs to Air Quality but is not particle but VOC measurement. Other VOC values can also be put in here. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Iaq { + get { return iaq_; } + set { + iaq_ = value; + } + } + + /// Field number for the "distance" field. + public const int DistanceFieldNumber = 8; + private float distance_; + /// + /// + /// RCWL9620 Doppler Radar Distance Sensor, used for water level detection. Float value in mm. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public float Distance { + get { return distance_; } + set { + distance_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -649,6 +732,8 @@ public bool Equals(EnvironmentMetrics other) { if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(GasResistance, other.GasResistance)) return false; if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Voltage, other.Voltage)) return false; if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Current, other.Current)) return false; + if (Iaq != other.Iaq) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Distance, other.Distance)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -662,6 +747,8 @@ public override int GetHashCode() { if (GasResistance != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(GasResistance); if (Voltage != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Voltage); if (Current != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Current); + if (Iaq != 0) hash ^= Iaq.GetHashCode(); + if (Distance != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Distance); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -704,6 +791,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(53); output.WriteFloat(Current); } + if (Iaq != 0) { + output.WriteRawTag(56); + output.WriteUInt32(Iaq); + } + if (Distance != 0F) { + output.WriteRawTag(69); + output.WriteFloat(Distance); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -738,6 +833,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(53); output.WriteFloat(Current); } + if (Iaq != 0) { + output.WriteRawTag(56); + output.WriteUInt32(Iaq); + } + if (Distance != 0F) { + output.WriteRawTag(69); + output.WriteFloat(Distance); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -766,6 +869,12 @@ public int CalculateSize() { if (Current != 0F) { size += 1 + 4; } + if (Iaq != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Iaq); + } + if (Distance != 0F) { + size += 1 + 4; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -796,6 +905,12 @@ public void MergeFrom(EnvironmentMetrics other) { if (other.Current != 0F) { Current = other.Current; } + if (other.Iaq != 0) { + Iaq = other.Iaq; + } + if (other.Distance != 0F) { + Distance = other.Distance; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -835,6 +950,14 @@ public void MergeFrom(pb::CodedInputStream input) { Current = input.ReadFloat(); break; } + case 56: { + Iaq = input.ReadUInt32(); + break; + } + case 69: { + Distance = input.ReadFloat(); + break; + } } } #endif @@ -874,6 +997,14 @@ public void MergeFrom(pb::CodedInputStream input) { Current = input.ReadFloat(); break; } + case 56: { + Iaq = input.ReadUInt32(); + break; + } + case 69: { + Distance = input.ReadFloat(); + break; + } } } } @@ -2062,7 +2193,7 @@ public uint Time { public const int PowerMetricsFieldNumber = 5; /// /// - /// Power Metrics + /// Power Metrics /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/protobufs b/protobufs index 53e1c4f..e21899a 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 53e1c4f6bda68c11d12d17ba650f8792fc8e2325 +Subproject commit e21899aa6b2b49863cfa2758e5e3b6faacf04bba