diff --git a/Meshtastic/Protobufs/meshtastic/admin.pb.swift b/Meshtastic/Protobufs/meshtastic/admin.pb.swift index 230f5304..1f2b193e 100644 --- a/Meshtastic/Protobufs/meshtastic/admin.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/admin.pb.swift @@ -924,7 +924,7 @@ struct AdminMessage { extension AdminMessage.ConfigType: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [AdminMessage.ConfigType] = [ + static var allCases: [AdminMessage.ConfigType] = [ .deviceConfig, .positionConfig, .powerConfig, @@ -937,7 +937,7 @@ extension AdminMessage.ConfigType: CaseIterable { extension AdminMessage.ModuleConfigType: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [AdminMessage.ModuleConfigType] = [ + static var allCases: [AdminMessage.ModuleConfigType] = [ .mqttConfig, .serialConfig, .extnotifConfig, diff --git a/Meshtastic/Protobufs/meshtastic/apponly.pb.swift b/Meshtastic/Protobufs/meshtastic/apponly.pb.swift index 11abf7af..ffce4849 100644 --- a/Meshtastic/Protobufs/meshtastic/apponly.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/apponly.pb.swift @@ -75,15 +75,7 @@ extension ChannelSet: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementatio var _settings: [ChannelSettings] = [] var _loraConfig: Config.LoRaConfig? = nil - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} diff --git a/Meshtastic/Protobufs/meshtastic/atak.pb.swift b/Meshtastic/Protobufs/meshtastic/atak.pb.swift index 77c35e7c..f1bc14ad 100644 --- a/Meshtastic/Protobufs/meshtastic/atak.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/atak.pb.swift @@ -136,7 +136,7 @@ enum Team: SwiftProtobuf.Enum { extension Team: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Team] = [ + static var allCases: [Team] = [ .unspecifedColor, .white, .yellow, @@ -239,7 +239,7 @@ enum MemberRole: SwiftProtobuf.Enum { extension MemberRole: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [MemberRole] = [ + static var allCases: [MemberRole] = [ .unspecifed, .teamMember, .teamLead, diff --git a/Meshtastic/Protobufs/meshtastic/channel.pb.swift b/Meshtastic/Protobufs/meshtastic/channel.pb.swift index b2c55540..493230ba 100644 --- a/Meshtastic/Protobufs/meshtastic/channel.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/channel.pb.swift @@ -215,7 +215,7 @@ struct Channel { extension Channel.Role: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Channel.Role] = [ + static var allCases: [Channel.Role] = [ .disabled, .primary, .secondary, diff --git a/Meshtastic/Protobufs/meshtastic/config.pb.swift b/Meshtastic/Protobufs/meshtastic/config.pb.swift index db2b7f04..cf1077e5 100644 --- a/Meshtastic/Protobufs/meshtastic/config.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/config.pb.swift @@ -194,6 +194,10 @@ struct Config { /// POSIX Timezone definition string from https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv. var tzdef: String = String() + /// + /// If true, disable the default blinking LED (LED_PIN) behavior on the device + var ledHeartbeatDisabled: Bool = false + var unknownFields = SwiftProtobuf.UnknownStorage() /// @@ -584,27 +588,25 @@ struct Config { // methods supported on all messages. /// - /// 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 var isPowerSaving: Bool = false /// - /// 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. var onBatteryShutdownAfterSecs: UInt32 = 0 /// /// 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 var adcMultiplierOverride: Float = 0 /// - /// 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 var waitBluetoothSecs: UInt32 = 0 /// @@ -615,16 +617,13 @@ struct Config { var sdsSecs: UInt32 = 0 /// - /// 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 var lsSecs: UInt32 = 0 /// - /// 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 var minWakeSecs: UInt32 = 0 /// @@ -1387,7 +1386,7 @@ struct Config { extension Config.DeviceConfig.Role: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DeviceConfig.Role] = [ + static var allCases: [Config.DeviceConfig.Role] = [ .client, .clientMute, .router, @@ -1404,7 +1403,7 @@ extension Config.DeviceConfig.Role: CaseIterable { extension Config.DeviceConfig.RebroadcastMode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DeviceConfig.RebroadcastMode] = [ + static var allCases: [Config.DeviceConfig.RebroadcastMode] = [ .all, .allSkipDecoding, .localOnly, @@ -1414,7 +1413,7 @@ extension Config.DeviceConfig.RebroadcastMode: CaseIterable { extension Config.PositionConfig.PositionFlags: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.PositionConfig.PositionFlags] = [ + static var allCases: [Config.PositionConfig.PositionFlags] = [ .unset, .altitude, .altitudeMsl, @@ -1431,7 +1430,7 @@ extension Config.PositionConfig.PositionFlags: CaseIterable { extension Config.PositionConfig.GpsMode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.PositionConfig.GpsMode] = [ + static var allCases: [Config.PositionConfig.GpsMode] = [ .disabled, .enabled, .notPresent, @@ -1440,7 +1439,7 @@ extension Config.PositionConfig.GpsMode: CaseIterable { extension Config.NetworkConfig.AddressMode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.NetworkConfig.AddressMode] = [ + static var allCases: [Config.NetworkConfig.AddressMode] = [ .dhcp, .static, ] @@ -1448,7 +1447,7 @@ extension Config.NetworkConfig.AddressMode: CaseIterable { extension Config.DisplayConfig.GpsCoordinateFormat: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DisplayConfig.GpsCoordinateFormat] = [ + static var allCases: [Config.DisplayConfig.GpsCoordinateFormat] = [ .dec, .dms, .utm, @@ -1460,7 +1459,7 @@ extension Config.DisplayConfig.GpsCoordinateFormat: CaseIterable { extension Config.DisplayConfig.DisplayUnits: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DisplayConfig.DisplayUnits] = [ + static var allCases: [Config.DisplayConfig.DisplayUnits] = [ .metric, .imperial, ] @@ -1468,7 +1467,7 @@ extension Config.DisplayConfig.DisplayUnits: CaseIterable { extension Config.DisplayConfig.OledType: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DisplayConfig.OledType] = [ + static var allCases: [Config.DisplayConfig.OledType] = [ .oledAuto, .oledSsd1306, .oledSh1106, @@ -1478,7 +1477,7 @@ extension Config.DisplayConfig.OledType: CaseIterable { extension Config.DisplayConfig.DisplayMode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.DisplayConfig.DisplayMode] = [ + static var allCases: [Config.DisplayConfig.DisplayMode] = [ .default, .twocolor, .inverted, @@ -1488,7 +1487,7 @@ extension Config.DisplayConfig.DisplayMode: CaseIterable { extension Config.LoRaConfig.RegionCode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.LoRaConfig.RegionCode] = [ + static var allCases: [Config.LoRaConfig.RegionCode] = [ .unset, .us, .eu433, @@ -1513,7 +1512,7 @@ extension Config.LoRaConfig.RegionCode: CaseIterable { extension Config.LoRaConfig.ModemPreset: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.LoRaConfig.ModemPreset] = [ + static var allCases: [Config.LoRaConfig.ModemPreset] = [ .longFast, .longSlow, .veryLongSlow, @@ -1527,7 +1526,7 @@ extension Config.LoRaConfig.ModemPreset: CaseIterable { extension Config.BluetoothConfig.PairingMode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Config.BluetoothConfig.PairingMode] = [ + static var allCases: [Config.BluetoothConfig.PairingMode] = [ .randomPin, .fixedPin, .noPin, @@ -1739,6 +1738,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl 9: .standard(proto: "is_managed"), 10: .standard(proto: "disable_triple_click"), 11: .same(proto: "tzdef"), + 12: .standard(proto: "led_heartbeat_disabled"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -1758,6 +1758,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl case 9: try { try decoder.decodeSingularBoolField(value: &self.isManaged) }() case 10: try { try decoder.decodeSingularBoolField(value: &self.disableTripleClick) }() case 11: try { try decoder.decodeSingularStringField(value: &self.tzdef) }() + case 12: try { try decoder.decodeSingularBoolField(value: &self.ledHeartbeatDisabled) }() default: break } } @@ -1797,6 +1798,9 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl if !self.tzdef.isEmpty { try visitor.visitSingularStringField(value: self.tzdef, fieldNumber: 11) } + if self.ledHeartbeatDisabled != false { + try visitor.visitSingularBoolField(value: self.ledHeartbeatDisabled, fieldNumber: 12) + } try unknownFields.traverse(visitor: &visitor) } @@ -1812,6 +1816,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl if lhs.isManaged != rhs.isManaged {return false} if lhs.disableTripleClick != rhs.disableTripleClick {return false} if lhs.tzdef != rhs.tzdef {return false} + if lhs.ledHeartbeatDisabled != rhs.ledHeartbeatDisabled {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } diff --git a/Meshtastic/Protobufs/meshtastic/deviceonly.pb.swift b/Meshtastic/Protobufs/meshtastic/deviceonly.pb.swift index ebd5e3f7..433bffd3 100644 --- a/Meshtastic/Protobufs/meshtastic/deviceonly.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/deviceonly.pb.swift @@ -66,7 +66,7 @@ enum ScreenFonts: SwiftProtobuf.Enum { extension ScreenFonts: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [ScreenFonts] = [ + static var allCases: [ScreenFonts] = [ .fontSmall, .fontMedium, .fontLarge, @@ -509,15 +509,7 @@ extension NodeInfoLite: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat var _hopsAway: UInt32 = 0 var _isFavorite: Bool = false - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} @@ -657,15 +649,7 @@ extension DeviceState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementati var _nodeRemoteHardwarePins: [NodeRemoteHardwarePin] = [] var _nodeDbLite: [NodeInfoLite] = [] - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} diff --git a/Meshtastic/Protobufs/meshtastic/localonly.pb.swift b/Meshtastic/Protobufs/meshtastic/localonly.pb.swift index 0778e962..6e215220 100644 --- a/Meshtastic/Protobufs/meshtastic/localonly.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/localonly.pb.swift @@ -314,15 +314,7 @@ extension LocalConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementati var _bluetooth: Config.BluetoothConfig? = nil var _version: UInt32 = 0 - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} @@ -458,15 +450,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem var _paxcounter: ModuleConfig.PaxcounterConfig? = nil var _version: UInt32 = 0 - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} diff --git a/Meshtastic/Protobufs/meshtastic/mesh.pb.swift b/Meshtastic/Protobufs/meshtastic/mesh.pb.swift index c9c26377..83c930df 100644 --- a/Meshtastic/Protobufs/meshtastic/mesh.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/mesh.pb.swift @@ -265,6 +265,15 @@ enum HardwareModel: SwiftProtobuf.Enum { /// Compatible with the TD-WRLS development board case tdLorac // = 60 + /// + /// CDEBYTE EoRa-S3 board using their own MM modules, clone of LILYGO T3S3 + case cdebyteEoraS3 // = 61 + + /// + /// TWC_MESH_V4 + /// Adafruit NRF52840 feather express with SX1262, SSD1306 OLED and NEO6M GPS + case 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. @@ -334,6 +343,8 @@ enum HardwareModel: SwiftProtobuf.Enum { case 58: self = .heltecWirelessTrackerV10 case 59: self = .unphone case 60: self = .tdLorac + case 61: self = .cdebyteEoraS3 + case 62: self = .twcMeshV4 case 255: self = .privateHw default: self = .UNRECOGNIZED(rawValue) } @@ -397,6 +408,8 @@ enum HardwareModel: SwiftProtobuf.Enum { case .heltecWirelessTrackerV10: return 58 case .unphone: return 59 case .tdLorac: return 60 + case .cdebyteEoraS3: return 61 + case .twcMeshV4: return 62 case .privateHw: return 255 case .UNRECOGNIZED(let i): return i } @@ -408,7 +421,7 @@ enum HardwareModel: SwiftProtobuf.Enum { extension HardwareModel: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [HardwareModel] = [ + static var allCases: [HardwareModel] = [ .unset, .tloraV2, .tloraV1, @@ -465,6 +478,8 @@ extension HardwareModel: CaseIterable { .heltecWirelessTrackerV10, .unphone, .tdLorac, + .cdebyteEoraS3, + .twcMeshV4, .privateHw, ] } @@ -514,7 +529,7 @@ enum Constants: SwiftProtobuf.Enum { extension Constants: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Constants] = [ + static var allCases: [Constants] = [ .zero, .dataPayloadLen, ] @@ -627,7 +642,7 @@ enum CriticalErrorCode: SwiftProtobuf.Enum { extension CriticalErrorCode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [CriticalErrorCode] = [ + static var allCases: [CriticalErrorCode] = [ .none, .txWatchdog, .sleepEnterWait, @@ -946,7 +961,7 @@ struct Position { extension Position.LocSource: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Position.LocSource] = [ + static var allCases: [Position.LocSource] = [ .locUnset, .locManual, .locInternal, @@ -956,7 +971,7 @@ extension Position.LocSource: CaseIterable { extension Position.AltSource: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Position.AltSource] = [ + static var allCases: [Position.AltSource] = [ .altUnset, .altManual, .altInternal, @@ -1237,7 +1252,7 @@ struct Routing { extension Routing.Error: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [Routing.Error] = [ + static var allCases: [Routing.Error] = [ .none, .noRoute, .gotNak, @@ -1755,7 +1770,7 @@ struct MeshPacket { extension MeshPacket.Priority: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [MeshPacket.Priority] = [ + static var allCases: [MeshPacket.Priority] = [ .unset, .min, .background, @@ -1768,7 +1783,7 @@ extension MeshPacket.Priority: CaseIterable { extension MeshPacket.Delayed: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [MeshPacket.Delayed] = [ + static var allCases: [MeshPacket.Delayed] = [ .noDelay, .broadcast, .direct, @@ -2022,7 +2037,7 @@ struct LogRecord { extension LogRecord.Level: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [LogRecord.Level] = [ + static var allCases: [LogRecord.Level] = [ .unset, .critical, .error, @@ -2762,6 +2777,8 @@ extension HardwareModel: SwiftProtobuf._ProtoNameProviding { 58: .same(proto: "HELTEC_WIRELESS_TRACKER_V1_0"), 59: .same(proto: "UNPHONE"), 60: .same(proto: "TD_LORAC"), + 61: .same(proto: "CDEBYTE_EORA_S3"), + 62: .same(proto: "TWC_MESH_V4"), 255: .same(proto: "PRIVATE_HW"), ] } @@ -2843,15 +2860,7 @@ extension Position: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationB var _seqNumber: UInt32 = 0 var _precisionBits: UInt32 = 0 - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} @@ -3513,15 +3522,7 @@ extension MeshPacket: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementatio var _viaMqtt: Bool = false var _hopStart: UInt32 = 0 - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} @@ -3733,15 +3734,7 @@ extension NodeInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationB var _hopsAway: UInt32 = 0 var _isFavorite: Bool = false - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} @@ -4033,15 +4026,7 @@ extension FromRadio: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation var _id: UInt32 = 0 var _payloadVariant: FromRadio.OneOf_PayloadVariant? - #if swift(>=5.10) - // This property is used as the initial default value for new instances of the type. - // The type itself is protecting the reference to its storage via CoW semantics. - // This will force a copy to be made of this reference when the first mutation occurs; - // hence, it is safe to mark this as `nonisolated(unsafe)`. - static nonisolated(unsafe) let defaultInstance = _StorageClass() - #else - static let defaultInstance = _StorageClass() - #endif + static let defaultInstance = _StorageClass() private init() {} diff --git a/Meshtastic/Protobufs/meshtastic/module_config.pb.swift b/Meshtastic/Protobufs/meshtastic/module_config.pb.swift index f6c28745..b688479b 100644 --- a/Meshtastic/Protobufs/meshtastic/module_config.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/module_config.pb.swift @@ -64,7 +64,7 @@ enum RemoteHardwarePinType: SwiftProtobuf.Enum { extension RemoteHardwarePinType: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [RemoteHardwarePinType] = [ + static var allCases: [RemoteHardwarePinType] = [ .unknown, .digitalRead, .digitalWrite, @@ -1152,7 +1152,7 @@ struct ModuleConfig { extension ModuleConfig.AudioConfig.Audio_Baud: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [ModuleConfig.AudioConfig.Audio_Baud] = [ + static var allCases: [ModuleConfig.AudioConfig.Audio_Baud] = [ .codec2Default, .codec23200, .codec22400, @@ -1167,7 +1167,7 @@ extension ModuleConfig.AudioConfig.Audio_Baud: CaseIterable { extension ModuleConfig.SerialConfig.Serial_Baud: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [ModuleConfig.SerialConfig.Serial_Baud] = [ + static var allCases: [ModuleConfig.SerialConfig.Serial_Baud] = [ .baudDefault, .baud110, .baud300, @@ -1189,7 +1189,7 @@ extension ModuleConfig.SerialConfig.Serial_Baud: CaseIterable { extension ModuleConfig.SerialConfig.Serial_Mode: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [ModuleConfig.SerialConfig.Serial_Mode] = [ + static var allCases: [ModuleConfig.SerialConfig.Serial_Mode] = [ .default, .simple, .proto, @@ -1201,7 +1201,7 @@ extension ModuleConfig.SerialConfig.Serial_Mode: CaseIterable { extension ModuleConfig.CannedMessageConfig.InputEventChar: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [ModuleConfig.CannedMessageConfig.InputEventChar] = [ + static var allCases: [ModuleConfig.CannedMessageConfig.InputEventChar] = [ .none, .up, .down, diff --git a/Meshtastic/Protobufs/meshtastic/portnums.pb.swift b/Meshtastic/Protobufs/meshtastic/portnums.pb.swift index a67e5ae6..c8948d7d 100644 --- a/Meshtastic/Protobufs/meshtastic/portnums.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/portnums.pb.swift @@ -277,7 +277,7 @@ enum PortNum: SwiftProtobuf.Enum { extension PortNum: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [PortNum] = [ + static var allCases: [PortNum] = [ .unknownApp, .textMessageApp, .remoteHardwareApp, diff --git a/Meshtastic/Protobufs/meshtastic/remote_hardware.pb.swift b/Meshtastic/Protobufs/meshtastic/remote_hardware.pb.swift index b26a80a2..1f24d0db 100644 --- a/Meshtastic/Protobufs/meshtastic/remote_hardware.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/remote_hardware.pb.swift @@ -119,7 +119,7 @@ struct HardwareMessage { extension HardwareMessage.TypeEnum: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [HardwareMessage.TypeEnum] = [ + static var allCases: [HardwareMessage.TypeEnum] = [ .unset, .writeGpios, .watchGpios, diff --git a/Meshtastic/Protobufs/meshtastic/storeforward.pb.swift b/Meshtastic/Protobufs/meshtastic/storeforward.pb.swift index 697b4e87..a8fa5f90 100644 --- a/Meshtastic/Protobufs/meshtastic/storeforward.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/storeforward.pb.swift @@ -344,7 +344,7 @@ struct StoreAndForward { extension StoreAndForward.RequestResponse: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [StoreAndForward.RequestResponse] = [ + static var allCases: [StoreAndForward.RequestResponse] = [ .unset, .routerError, .routerHeartbeat, diff --git a/Meshtastic/Protobufs/meshtastic/telemetry.pb.swift b/Meshtastic/Protobufs/meshtastic/telemetry.pb.swift index d878629a..5f96c02b 100644 --- a/Meshtastic/Protobufs/meshtastic/telemetry.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/telemetry.pb.swift @@ -88,6 +88,10 @@ enum TelemetrySensorType: SwiftProtobuf.Enum { /// /// BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280) case bmp085 // = 15 + + /// + /// RCWL-9620 Doppler Radar Distance Sensor, used for water level detection + case rcwl9620 // = 16 case UNRECOGNIZED(Int) init() { @@ -112,6 +116,7 @@ enum TelemetrySensorType: SwiftProtobuf.Enum { case 13: self = .pmsa003I case 14: self = .ina3221 case 15: self = .bmp085 + case 16: self = .rcwl9620 default: self = .UNRECOGNIZED(rawValue) } } @@ -134,6 +139,7 @@ enum TelemetrySensorType: SwiftProtobuf.Enum { case .pmsa003I: return 13 case .ina3221: return 14 case .bmp085: return 15 + case .rcwl9620: return 16 case .UNRECOGNIZED(let i): return i } } @@ -144,7 +150,7 @@ enum TelemetrySensorType: SwiftProtobuf.Enum { extension TelemetrySensorType: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [TelemetrySensorType] = [ + static var allCases: [TelemetrySensorType] = [ .sensorUnset, .bme280, .bme680, @@ -161,6 +167,7 @@ extension TelemetrySensorType: CaseIterable { .pmsa003I, .ina3221, .bmp085, + .rcwl9620, ] } @@ -234,6 +241,10 @@ struct EnvironmentMetrics { /// Belongs to Air Quality but is not particle but VOC measurement. Other VOC values can also be put in here. var iaq: UInt32 = 0 + /// + /// RCWL9620 Doppler Radar Distance Sensor, used for water level detection. Float value in mm. + var distance: Float = 0 + var unknownFields = SwiftProtobuf.UnknownStorage() init() {} @@ -467,6 +478,7 @@ extension TelemetrySensorType: SwiftProtobuf._ProtoNameProviding { 13: .same(proto: "PMSA003I"), 14: .same(proto: "INA3221"), 15: .same(proto: "BMP085"), + 16: .same(proto: "RCWL9620"), ] } @@ -536,6 +548,7 @@ extension EnvironmentMetrics: SwiftProtobuf.Message, SwiftProtobuf._MessageImple 5: .same(proto: "voltage"), 6: .same(proto: "current"), 7: .same(proto: "iaq"), + 8: .same(proto: "distance"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -551,6 +564,7 @@ extension EnvironmentMetrics: SwiftProtobuf.Message, SwiftProtobuf._MessageImple case 5: try { try decoder.decodeSingularFloatField(value: &self.voltage) }() case 6: try { try decoder.decodeSingularFloatField(value: &self.current) }() case 7: try { try decoder.decodeSingularUInt32Field(value: &self.iaq) }() + case 8: try { try decoder.decodeSingularFloatField(value: &self.distance) }() default: break } } @@ -578,6 +592,9 @@ extension EnvironmentMetrics: SwiftProtobuf.Message, SwiftProtobuf._MessageImple if self.iaq != 0 { try visitor.visitSingularUInt32Field(value: self.iaq, fieldNumber: 7) } + if self.distance != 0 { + try visitor.visitSingularFloatField(value: self.distance, fieldNumber: 8) + } try unknownFields.traverse(visitor: &visitor) } @@ -589,6 +606,7 @@ extension EnvironmentMetrics: SwiftProtobuf.Message, SwiftProtobuf._MessageImple if lhs.voltage != rhs.voltage {return false} if lhs.current != rhs.current {return false} if lhs.iaq != rhs.iaq {return false} + if lhs.distance != rhs.distance {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } diff --git a/Meshtastic/Protobufs/meshtastic/xmodem.pb.swift b/Meshtastic/Protobufs/meshtastic/xmodem.pb.swift index 4df972b8..a70841f2 100644 --- a/Meshtastic/Protobufs/meshtastic/xmodem.pb.swift +++ b/Meshtastic/Protobufs/meshtastic/xmodem.pb.swift @@ -88,7 +88,7 @@ struct XModem { extension XModem.Control: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. - static let allCases: [XModem.Control] = [ + static var allCases: [XModem.Control] = [ .nul, .soh, .stx, diff --git a/protobufs b/protobufs index f92900c5..86640f20 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit f92900c5f884b04388fb7abf61d4df66783015e4 +Subproject commit 86640f20db7b9b5be42949d18e8d96ad10d47a68