mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Update protobufs
Don't allow leading zero for BLE fixed pin Comment out ethMode
This commit is contained in:
parent
871a5f30ab
commit
8b8108c5a3
8 changed files with 420 additions and 15 deletions
|
|
@ -24,14 +24,14 @@ enum EthernetMode: Int, CaseIterable, Identifiable {
|
|||
}
|
||||
}
|
||||
}
|
||||
func protoEnumValue() -> Config.NetworkConfig.EthMode {
|
||||
func protoEnumValue() -> Config.NetworkConfig.AddressMode {
|
||||
|
||||
switch self {
|
||||
|
||||
case .dhcp:
|
||||
return Config.NetworkConfig.EthMode.dhcp
|
||||
return Config.NetworkConfig.AddressMode.dhcp
|
||||
case .staticip:
|
||||
return Config.NetworkConfig.EthMode.static
|
||||
return Config.NetworkConfig.AddressMode.static
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,6 +154,26 @@ struct AdminMessage {
|
|||
set {payloadVariant = .getDeviceMetadataResponse(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// Get the Ringtone in the response to this message.
|
||||
var getRingtoneRequest: Bool {
|
||||
get {
|
||||
if case .getRingtoneRequest(let v)? = payloadVariant {return v}
|
||||
return false
|
||||
}
|
||||
set {payloadVariant = .getRingtoneRequest(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// Get the Ringtone in the response to this message.
|
||||
var getRingtoneResponse: String {
|
||||
get {
|
||||
if case .getRingtoneResponse(let v)? = payloadVariant {return v}
|
||||
return String()
|
||||
}
|
||||
set {payloadVariant = .getRingtoneResponse(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// Set the owner for this node
|
||||
var setOwner: User {
|
||||
|
|
@ -208,6 +228,16 @@ struct AdminMessage {
|
|||
set {payloadVariant = .setCannedMessageModuleMessages(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// Set the ringtone for ExternalNotification.
|
||||
var setRingtoneMessage: String {
|
||||
get {
|
||||
if case .setRingtoneMessage(let v)? = payloadVariant {return v}
|
||||
return String()
|
||||
}
|
||||
set {payloadVariant = .setRingtoneMessage(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// Begins an edit transaction for config, module config, owner, and channel settings changes
|
||||
/// This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
|
||||
|
|
@ -357,6 +387,12 @@ struct AdminMessage {
|
|||
/// Device metadata response
|
||||
case getDeviceMetadataResponse(DeviceMetadata)
|
||||
///
|
||||
/// Get the Ringtone in the response to this message.
|
||||
case getRingtoneRequest(Bool)
|
||||
///
|
||||
/// Get the Ringtone in the response to this message.
|
||||
case getRingtoneResponse(String)
|
||||
///
|
||||
/// Set the owner for this node
|
||||
case setOwner(User)
|
||||
///
|
||||
|
|
@ -376,6 +412,9 @@ struct AdminMessage {
|
|||
/// Set the Canned Message Module messages text.
|
||||
case setCannedMessageModuleMessages(String)
|
||||
///
|
||||
/// Set the ringtone for ExternalNotification.
|
||||
case setRingtoneMessage(String)
|
||||
///
|
||||
/// Begins an edit transaction for config, module config, owner, and channel settings changes
|
||||
/// This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
|
||||
case beginEditSettings(Bool)
|
||||
|
|
@ -466,6 +505,14 @@ struct AdminMessage {
|
|||
guard case .getDeviceMetadataResponse(let l) = lhs, case .getDeviceMetadataResponse(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.getRingtoneRequest, .getRingtoneRequest): return {
|
||||
guard case .getRingtoneRequest(let l) = lhs, case .getRingtoneRequest(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.getRingtoneResponse, .getRingtoneResponse): return {
|
||||
guard case .getRingtoneResponse(let l) = lhs, case .getRingtoneResponse(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.setOwner, .setOwner): return {
|
||||
guard case .setOwner(let l) = lhs, case .setOwner(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
|
|
@ -486,6 +533,10 @@ struct AdminMessage {
|
|||
guard case .setCannedMessageModuleMessages(let l) = lhs, case .setCannedMessageModuleMessages(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.setRingtoneMessage, .setRingtoneMessage): return {
|
||||
guard case .setRingtoneMessage(let l) = lhs, case .setRingtoneMessage(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.beginEditSettings, .beginEditSettings): return {
|
||||
guard case .beginEditSettings(let l) = lhs, case .beginEditSettings(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
|
|
@ -634,6 +685,10 @@ struct AdminMessage {
|
|||
///
|
||||
/// TODO: REPLACE
|
||||
case audioConfig // = 7
|
||||
|
||||
///
|
||||
/// TODO: REPLACE
|
||||
case remotehardwareConfig // = 8
|
||||
case UNRECOGNIZED(Int)
|
||||
|
||||
init() {
|
||||
|
|
@ -650,6 +705,7 @@ struct AdminMessage {
|
|||
case 5: self = .telemetryConfig
|
||||
case 6: self = .cannedmsgConfig
|
||||
case 7: self = .audioConfig
|
||||
case 8: self = .remotehardwareConfig
|
||||
default: self = .UNRECOGNIZED(rawValue)
|
||||
}
|
||||
}
|
||||
|
|
@ -664,6 +720,7 @@ struct AdminMessage {
|
|||
case .telemetryConfig: return 5
|
||||
case .cannedmsgConfig: return 6
|
||||
case .audioConfig: return 7
|
||||
case .remotehardwareConfig: return 8
|
||||
case .UNRECOGNIZED(let i): return i
|
||||
}
|
||||
}
|
||||
|
|
@ -699,6 +756,7 @@ extension AdminMessage.ModuleConfigType: CaseIterable {
|
|||
.telemetryConfig,
|
||||
.cannedmsgConfig,
|
||||
.audioConfig,
|
||||
.remotehardwareConfig,
|
||||
]
|
||||
}
|
||||
|
||||
|
|
@ -728,11 +786,14 @@ extension AdminMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
11: .standard(proto: "get_canned_message_module_messages_response"),
|
||||
12: .standard(proto: "get_device_metadata_request"),
|
||||
13: .standard(proto: "get_device_metadata_response"),
|
||||
14: .standard(proto: "get_ringtone_request"),
|
||||
15: .standard(proto: "get_ringtone_response"),
|
||||
32: .standard(proto: "set_owner"),
|
||||
33: .standard(proto: "set_channel"),
|
||||
34: .standard(proto: "set_config"),
|
||||
35: .standard(proto: "set_module_config"),
|
||||
36: .standard(proto: "set_canned_message_module_messages"),
|
||||
37: .standard(proto: "set_ringtone_message"),
|
||||
64: .standard(proto: "begin_edit_settings"),
|
||||
65: .standard(proto: "commit_edit_settings"),
|
||||
66: .standard(proto: "confirm_set_channel"),
|
||||
|
|
@ -872,6 +933,22 @@ extension AdminMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
self.payloadVariant = .getDeviceMetadataResponse(v)
|
||||
}
|
||||
}()
|
||||
case 14: try {
|
||||
var v: Bool?
|
||||
try decoder.decodeSingularBoolField(value: &v)
|
||||
if let v = v {
|
||||
if self.payloadVariant != nil {try decoder.handleConflictingOneOf()}
|
||||
self.payloadVariant = .getRingtoneRequest(v)
|
||||
}
|
||||
}()
|
||||
case 15: try {
|
||||
var v: String?
|
||||
try decoder.decodeSingularStringField(value: &v)
|
||||
if let v = v {
|
||||
if self.payloadVariant != nil {try decoder.handleConflictingOneOf()}
|
||||
self.payloadVariant = .getRingtoneResponse(v)
|
||||
}
|
||||
}()
|
||||
case 32: try {
|
||||
var v: User?
|
||||
var hadOneofValue = false
|
||||
|
|
@ -932,6 +1009,14 @@ extension AdminMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
self.payloadVariant = .setCannedMessageModuleMessages(v)
|
||||
}
|
||||
}()
|
||||
case 37: try {
|
||||
var v: String?
|
||||
try decoder.decodeSingularStringField(value: &v)
|
||||
if let v = v {
|
||||
if self.payloadVariant != nil {try decoder.handleConflictingOneOf()}
|
||||
self.payloadVariant = .setRingtoneMessage(v)
|
||||
}
|
||||
}()
|
||||
case 64: try {
|
||||
var v: Bool?
|
||||
try decoder.decodeSingularBoolField(value: &v)
|
||||
|
|
@ -1071,6 +1156,14 @@ extension AdminMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
guard case .getDeviceMetadataResponse(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 13)
|
||||
}()
|
||||
case .getRingtoneRequest?: try {
|
||||
guard case .getRingtoneRequest(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularBoolField(value: v, fieldNumber: 14)
|
||||
}()
|
||||
case .getRingtoneResponse?: try {
|
||||
guard case .getRingtoneResponse(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularStringField(value: v, fieldNumber: 15)
|
||||
}()
|
||||
case .setOwner?: try {
|
||||
guard case .setOwner(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 32)
|
||||
|
|
@ -1091,6 +1184,10 @@ extension AdminMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
guard case .setCannedMessageModuleMessages(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularStringField(value: v, fieldNumber: 36)
|
||||
}()
|
||||
case .setRingtoneMessage?: try {
|
||||
guard case .setRingtoneMessage(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularStringField(value: v, fieldNumber: 37)
|
||||
}()
|
||||
case .beginEditSettings?: try {
|
||||
guard case .beginEditSettings(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularBoolField(value: v, fieldNumber: 64)
|
||||
|
|
@ -1165,5 +1262,6 @@ extension AdminMessage.ModuleConfigType: SwiftProtobuf._ProtoNameProviding {
|
|||
5: .same(proto: "TELEMETRY_CONFIG"),
|
||||
6: .same(proto: "CANNEDMSG_CONFIG"),
|
||||
7: .same(proto: "AUDIO_CONFIG"),
|
||||
8: .same(proto: "REMOTEHARDWARE_CONFIG"),
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -474,7 +474,7 @@ struct Config {
|
|||
|
||||
///
|
||||
/// acquire an address via DHCP or assign static
|
||||
var ethMode: Config.NetworkConfig.EthMode = .dhcp
|
||||
var addressMode: Config.NetworkConfig.AddressMode = .dhcp
|
||||
|
||||
///
|
||||
/// struct to keep static address
|
||||
|
|
@ -489,7 +489,7 @@ struct Config {
|
|||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
enum EthMode: SwiftProtobuf.Enum {
|
||||
enum AddressMode: SwiftProtobuf.Enum {
|
||||
typealias RawValue = Int
|
||||
|
||||
///
|
||||
|
|
@ -592,6 +592,14 @@ struct Config {
|
|||
/// Override auto-detect in screen
|
||||
var oled: Config.DisplayConfig.OledType = .oledAuto
|
||||
|
||||
///
|
||||
/// Display Mode
|
||||
var displaymode: Config.DisplayConfig.DisplayMode = .default
|
||||
|
||||
///
|
||||
/// Print first line in pseudo-bold? FALSE is original style, TRUE is bold
|
||||
var headingBold: Bool = false
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
///
|
||||
|
|
@ -739,6 +747,52 @@ struct Config {
|
|||
|
||||
}
|
||||
|
||||
enum DisplayMode: SwiftProtobuf.Enum {
|
||||
typealias RawValue = Int
|
||||
|
||||
///
|
||||
/// Default. The old style for the 128x64 OLED screen
|
||||
case `default` // = 0
|
||||
|
||||
///
|
||||
/// Rearrange display elements to cater for bicolor OLED displays
|
||||
case twocolor // = 1
|
||||
|
||||
///
|
||||
/// Same as TwoColor, but with inverted top bar. Not so good for Epaper displays
|
||||
case inverted // = 2
|
||||
|
||||
///
|
||||
/// TFT Full Color Displays (not implemented yet)
|
||||
case color // = 3
|
||||
case UNRECOGNIZED(Int)
|
||||
|
||||
init() {
|
||||
self = .default
|
||||
}
|
||||
|
||||
init?(rawValue: Int) {
|
||||
switch rawValue {
|
||||
case 0: self = .default
|
||||
case 1: self = .twocolor
|
||||
case 2: self = .inverted
|
||||
case 3: self = .color
|
||||
default: self = .UNRECOGNIZED(rawValue)
|
||||
}
|
||||
}
|
||||
|
||||
var rawValue: Int {
|
||||
switch self {
|
||||
case .default: return 0
|
||||
case .twocolor: return 1
|
||||
case .inverted: return 2
|
||||
case .color: return 3
|
||||
case .UNRECOGNIZED(let i): return i
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
init() {}
|
||||
}
|
||||
|
||||
|
|
@ -1099,9 +1153,9 @@ extension Config.PositionConfig.PositionFlags: CaseIterable {
|
|||
]
|
||||
}
|
||||
|
||||
extension Config.NetworkConfig.EthMode: CaseIterable {
|
||||
extension Config.NetworkConfig.AddressMode: CaseIterable {
|
||||
// The compiler won't synthesize support with the UNRECOGNIZED case.
|
||||
static var allCases: [Config.NetworkConfig.EthMode] = [
|
||||
static var allCases: [Config.NetworkConfig.AddressMode] = [
|
||||
.dhcp,
|
||||
.static,
|
||||
]
|
||||
|
|
@ -1136,6 +1190,16 @@ extension Config.DisplayConfig.OledType: CaseIterable {
|
|||
]
|
||||
}
|
||||
|
||||
extension Config.DisplayConfig.DisplayMode: CaseIterable {
|
||||
// The compiler won't synthesize support with the UNRECOGNIZED case.
|
||||
static var allCases: [Config.DisplayConfig.DisplayMode] = [
|
||||
.default,
|
||||
.twocolor,
|
||||
.inverted,
|
||||
.color,
|
||||
]
|
||||
}
|
||||
|
||||
extension Config.LoRaConfig.RegionCode: CaseIterable {
|
||||
// The compiler won't synthesize support with the UNRECOGNIZED case.
|
||||
static var allCases: [Config.LoRaConfig.RegionCode] = [
|
||||
|
|
@ -1189,12 +1253,13 @@ extension Config.PositionConfig: @unchecked Sendable {}
|
|||
extension Config.PositionConfig.PositionFlags: @unchecked Sendable {}
|
||||
extension Config.PowerConfig: @unchecked Sendable {}
|
||||
extension Config.NetworkConfig: @unchecked Sendable {}
|
||||
extension Config.NetworkConfig.EthMode: @unchecked Sendable {}
|
||||
extension Config.NetworkConfig.AddressMode: @unchecked Sendable {}
|
||||
extension Config.NetworkConfig.IpV4Config: @unchecked Sendable {}
|
||||
extension Config.DisplayConfig: @unchecked Sendable {}
|
||||
extension Config.DisplayConfig.GpsCoordinateFormat: @unchecked Sendable {}
|
||||
extension Config.DisplayConfig.DisplayUnits: @unchecked Sendable {}
|
||||
extension Config.DisplayConfig.OledType: @unchecked Sendable {}
|
||||
extension Config.DisplayConfig.DisplayMode: @unchecked Sendable {}
|
||||
extension Config.LoRaConfig: @unchecked Sendable {}
|
||||
extension Config.LoRaConfig.RegionCode: @unchecked Sendable {}
|
||||
extension Config.LoRaConfig.ModemPreset: @unchecked Sendable {}
|
||||
|
|
@ -1607,7 +1672,7 @@ extension Config.NetworkConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
4: .standard(proto: "wifi_psk"),
|
||||
5: .standard(proto: "ntp_server"),
|
||||
6: .standard(proto: "eth_enabled"),
|
||||
7: .standard(proto: "eth_mode"),
|
||||
7: .standard(proto: "address_mode"),
|
||||
8: .standard(proto: "ipv4_config"),
|
||||
]
|
||||
|
||||
|
|
@ -1622,7 +1687,7 @@ extension Config.NetworkConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
case 4: try { try decoder.decodeSingularStringField(value: &self.wifiPsk) }()
|
||||
case 5: try { try decoder.decodeSingularStringField(value: &self.ntpServer) }()
|
||||
case 6: try { try decoder.decodeSingularBoolField(value: &self.ethEnabled) }()
|
||||
case 7: try { try decoder.decodeSingularEnumField(value: &self.ethMode) }()
|
||||
case 7: try { try decoder.decodeSingularEnumField(value: &self.addressMode) }()
|
||||
case 8: try { try decoder.decodeSingularMessageField(value: &self._ipv4Config) }()
|
||||
default: break
|
||||
}
|
||||
|
|
@ -1649,8 +1714,8 @@ extension Config.NetworkConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
if self.ethEnabled != false {
|
||||
try visitor.visitSingularBoolField(value: self.ethEnabled, fieldNumber: 6)
|
||||
}
|
||||
if self.ethMode != .dhcp {
|
||||
try visitor.visitSingularEnumField(value: self.ethMode, fieldNumber: 7)
|
||||
if self.addressMode != .dhcp {
|
||||
try visitor.visitSingularEnumField(value: self.addressMode, fieldNumber: 7)
|
||||
}
|
||||
try { if let v = self._ipv4Config {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
|
||||
|
|
@ -1664,14 +1729,14 @@ extension Config.NetworkConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
if lhs.wifiPsk != rhs.wifiPsk {return false}
|
||||
if lhs.ntpServer != rhs.ntpServer {return false}
|
||||
if lhs.ethEnabled != rhs.ethEnabled {return false}
|
||||
if lhs.ethMode != rhs.ethMode {return false}
|
||||
if lhs.addressMode != rhs.addressMode {return false}
|
||||
if lhs._ipv4Config != rhs._ipv4Config {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension Config.NetworkConfig.EthMode: SwiftProtobuf._ProtoNameProviding {
|
||||
extension Config.NetworkConfig.AddressMode: SwiftProtobuf._ProtoNameProviding {
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
0: .same(proto: "DHCP"),
|
||||
1: .same(proto: "STATIC"),
|
||||
|
|
@ -1738,6 +1803,8 @@ extension Config.DisplayConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
5: .standard(proto: "flip_screen"),
|
||||
6: .same(proto: "units"),
|
||||
7: .same(proto: "oled"),
|
||||
8: .same(proto: "displaymode"),
|
||||
9: .standard(proto: "heading_bold"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
|
|
@ -1753,6 +1820,8 @@ extension Config.DisplayConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
case 5: try { try decoder.decodeSingularBoolField(value: &self.flipScreen) }()
|
||||
case 6: try { try decoder.decodeSingularEnumField(value: &self.units) }()
|
||||
case 7: try { try decoder.decodeSingularEnumField(value: &self.oled) }()
|
||||
case 8: try { try decoder.decodeSingularEnumField(value: &self.displaymode) }()
|
||||
case 9: try { try decoder.decodeSingularBoolField(value: &self.headingBold) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -1780,6 +1849,12 @@ extension Config.DisplayConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
if self.oled != .oledAuto {
|
||||
try visitor.visitSingularEnumField(value: self.oled, fieldNumber: 7)
|
||||
}
|
||||
if self.displaymode != .default {
|
||||
try visitor.visitSingularEnumField(value: self.displaymode, fieldNumber: 8)
|
||||
}
|
||||
if self.headingBold != false {
|
||||
try visitor.visitSingularBoolField(value: self.headingBold, fieldNumber: 9)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
|
|
@ -1791,6 +1866,8 @@ extension Config.DisplayConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImp
|
|||
if lhs.flipScreen != rhs.flipScreen {return false}
|
||||
if lhs.units != rhs.units {return false}
|
||||
if lhs.oled != rhs.oled {return false}
|
||||
if lhs.displaymode != rhs.displaymode {return false}
|
||||
if lhs.headingBold != rhs.headingBold {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
|
|
@ -1822,6 +1899,15 @@ extension Config.DisplayConfig.OledType: SwiftProtobuf._ProtoNameProviding {
|
|||
]
|
||||
}
|
||||
|
||||
extension Config.DisplayConfig.DisplayMode: SwiftProtobuf._ProtoNameProviding {
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
0: .same(proto: "DEFAULT"),
|
||||
1: .same(proto: "TWOCOLOR"),
|
||||
2: .same(proto: "INVERTED"),
|
||||
3: .same(proto: "COLOR"),
|
||||
]
|
||||
}
|
||||
|
||||
extension Config.LoRaConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = Config.protoMessageName + ".LoRaConfig"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
|
|
|
|||
|
|
@ -211,6 +211,17 @@ struct LocalModuleConfig {
|
|||
/// Clears the value of `audio`. Subsequent reads from it will return its default value.
|
||||
mutating func clearAudio() {_uniqueStorage()._audio = nil}
|
||||
|
||||
///
|
||||
/// The part of the config that is specific to the Remote Hardware module
|
||||
var remoteHardware: ModuleConfig.RemoteHardwareConfig {
|
||||
get {return _storage._remoteHardware ?? ModuleConfig.RemoteHardwareConfig()}
|
||||
set {_uniqueStorage()._remoteHardware = newValue}
|
||||
}
|
||||
/// Returns true if `remoteHardware` has been explicitly set.
|
||||
var hasRemoteHardware: Bool {return _storage._remoteHardware != nil}
|
||||
/// Clears the value of `remoteHardware`. Subsequent reads from it will return its default value.
|
||||
mutating func clearRemoteHardware() {_uniqueStorage()._remoteHardware = nil}
|
||||
|
||||
///
|
||||
/// A version integer used to invalidate old save files when we make
|
||||
/// incompatible changes This integer is set at build time and is private to
|
||||
|
|
@ -369,6 +380,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
6: .same(proto: "telemetry"),
|
||||
7: .standard(proto: "canned_message"),
|
||||
9: .same(proto: "audio"),
|
||||
10: .standard(proto: "remote_hardware"),
|
||||
8: .same(proto: "version"),
|
||||
]
|
||||
|
||||
|
|
@ -381,6 +393,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
var _telemetry: ModuleConfig.TelemetryConfig? = nil
|
||||
var _cannedMessage: ModuleConfig.CannedMessageConfig? = nil
|
||||
var _audio: ModuleConfig.AudioConfig? = nil
|
||||
var _remoteHardware: ModuleConfig.RemoteHardwareConfig? = nil
|
||||
var _version: UInt32 = 0
|
||||
|
||||
static let defaultInstance = _StorageClass()
|
||||
|
|
@ -396,6 +409,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
_telemetry = source._telemetry
|
||||
_cannedMessage = source._cannedMessage
|
||||
_audio = source._audio
|
||||
_remoteHardware = source._remoteHardware
|
||||
_version = source._version
|
||||
}
|
||||
}
|
||||
|
|
@ -424,6 +438,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
case 7: try { try decoder.decodeSingularMessageField(value: &_storage._cannedMessage) }()
|
||||
case 8: try { try decoder.decodeSingularUInt32Field(value: &_storage._version) }()
|
||||
case 9: try { try decoder.decodeSingularMessageField(value: &_storage._audio) }()
|
||||
case 10: try { try decoder.decodeSingularMessageField(value: &_storage._remoteHardware) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -463,6 +478,9 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
try { if let v = _storage._audio {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
|
||||
} }()
|
||||
try { if let v = _storage._remoteHardware {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 10)
|
||||
} }()
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
|
@ -480,6 +498,7 @@ extension LocalModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem
|
|||
if _storage._telemetry != rhs_storage._telemetry {return false}
|
||||
if _storage._cannedMessage != rhs_storage._cannedMessage {return false}
|
||||
if _storage._audio != rhs_storage._audio {return false}
|
||||
if _storage._remoteHardware != rhs_storage._remoteHardware {return false}
|
||||
if _storage._version != rhs_storage._version {return false}
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,6 +154,10 @@ enum HardwareModel: SwiftProtobuf.Enum {
|
|||
/// New Heltec Wireless Stick Lite with ESP32-S3 CPU
|
||||
case heltecWslV3 // = 44
|
||||
|
||||
///
|
||||
/// New BETAFPV ELRS Micro TX Module 2.4G with ESP32 CPU
|
||||
case betafpv2400Tx // = 45
|
||||
|
||||
///
|
||||
/// 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.
|
||||
case privateHw // = 255
|
||||
|
|
@ -196,6 +200,7 @@ enum HardwareModel: SwiftProtobuf.Enum {
|
|||
case 42: self = .m5Stack
|
||||
case 43: self = .heltecV3
|
||||
case 44: self = .heltecWslV3
|
||||
case 45: self = .betafpv2400Tx
|
||||
case 255: self = .privateHw
|
||||
default: self = .UNRECOGNIZED(rawValue)
|
||||
}
|
||||
|
|
@ -234,6 +239,7 @@ enum HardwareModel: SwiftProtobuf.Enum {
|
|||
case .m5Stack: return 42
|
||||
case .heltecV3: return 43
|
||||
case .heltecWslV3: return 44
|
||||
case .betafpv2400Tx: return 45
|
||||
case .privateHw: return 255
|
||||
case .UNRECOGNIZED(let i): return i
|
||||
}
|
||||
|
|
@ -277,6 +283,7 @@ extension HardwareModel: CaseIterable {
|
|||
.m5Stack,
|
||||
.heltecV3,
|
||||
.heltecWslV3,
|
||||
.betafpv2400Tx,
|
||||
.privateHw,
|
||||
]
|
||||
}
|
||||
|
|
@ -1772,6 +1779,28 @@ extension LogRecord.Level: CaseIterable {
|
|||
|
||||
#endif // swift(>=4.2)
|
||||
|
||||
struct QueueStatus {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
/// Last attempt to queue status, ErrorCode
|
||||
var res: Int32 = 0
|
||||
|
||||
/// Free entries in the outgoing queue
|
||||
var free: UInt32 = 0
|
||||
|
||||
/// Maximum entries in the outgoing queue
|
||||
var maxlen: UInt32 = 0
|
||||
|
||||
/// What was mesh packet id that generated this response?
|
||||
var meshPacketID: UInt32 = 0
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
}
|
||||
|
||||
///
|
||||
/// Packets from the radio to the phone will appear on the fromRadio characteristic.
|
||||
/// It will support READ and NOTIFY. When a new packet arrives the device will BLE notify?
|
||||
|
|
@ -1895,6 +1924,15 @@ struct FromRadio {
|
|||
set {_uniqueStorage()._payloadVariant = .channel(newValue)}
|
||||
}
|
||||
|
||||
/// Queue status info
|
||||
var queueStatus: QueueStatus {
|
||||
get {
|
||||
if case .queueStatus(let v)? = _storage._payloadVariant {return v}
|
||||
return QueueStatus()
|
||||
}
|
||||
set {_uniqueStorage()._payloadVariant = .queueStatus(newValue)}
|
||||
}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
///
|
||||
|
|
@ -1935,6 +1973,8 @@ struct FromRadio {
|
|||
///
|
||||
/// One packet is sent for each channel
|
||||
case channel(Channel)
|
||||
/// Queue status info
|
||||
case queueStatus(QueueStatus)
|
||||
|
||||
#if !swift(>=4.1)
|
||||
static func ==(lhs: FromRadio.OneOf_PayloadVariant, rhs: FromRadio.OneOf_PayloadVariant) -> Bool {
|
||||
|
|
@ -1978,6 +2018,10 @@ struct FromRadio {
|
|||
guard case .channel(let l) = lhs, case .channel(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.queueStatus, .queueStatus): return {
|
||||
guard case .queueStatus(let l) = lhs, case .queueStatus(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
default: return false
|
||||
}
|
||||
}
|
||||
|
|
@ -2133,6 +2177,7 @@ extension NodeInfo: @unchecked Sendable {}
|
|||
extension MyNodeInfo: @unchecked Sendable {}
|
||||
extension LogRecord: @unchecked Sendable {}
|
||||
extension LogRecord.Level: @unchecked Sendable {}
|
||||
extension QueueStatus: @unchecked Sendable {}
|
||||
extension FromRadio: @unchecked Sendable {}
|
||||
extension FromRadio.OneOf_PayloadVariant: @unchecked Sendable {}
|
||||
extension ToRadio: @unchecked Sendable {}
|
||||
|
|
@ -2175,6 +2220,7 @@ extension HardwareModel: SwiftProtobuf._ProtoNameProviding {
|
|||
42: .same(proto: "M5STACK"),
|
||||
43: .same(proto: "HELTEC_V3"),
|
||||
44: .same(proto: "HELTEC_WSL_V3"),
|
||||
45: .same(proto: "BETAFPV_2400_TX"),
|
||||
255: .same(proto: "PRIVATE_HW"),
|
||||
]
|
||||
}
|
||||
|
|
@ -3245,6 +3291,56 @@ extension LogRecord.Level: SwiftProtobuf._ProtoNameProviding {
|
|||
]
|
||||
}
|
||||
|
||||
extension QueueStatus: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "QueueStatus"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "res"),
|
||||
2: .same(proto: "free"),
|
||||
3: .same(proto: "maxlen"),
|
||||
4: .standard(proto: "mesh_packet_id"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
// The use of inline closures is to circumvent an issue where the compiler
|
||||
// allocates stack space for every case branch when no optimizations are
|
||||
// enabled. https://github.com/apple/swift-protobuf/issues/1034
|
||||
switch fieldNumber {
|
||||
case 1: try { try decoder.decodeSingularInt32Field(value: &self.res) }()
|
||||
case 2: try { try decoder.decodeSingularUInt32Field(value: &self.free) }()
|
||||
case 3: try { try decoder.decodeSingularUInt32Field(value: &self.maxlen) }()
|
||||
case 4: try { try decoder.decodeSingularUInt32Field(value: &self.meshPacketID) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if self.res != 0 {
|
||||
try visitor.visitSingularInt32Field(value: self.res, fieldNumber: 1)
|
||||
}
|
||||
if self.free != 0 {
|
||||
try visitor.visitSingularUInt32Field(value: self.free, fieldNumber: 2)
|
||||
}
|
||||
if self.maxlen != 0 {
|
||||
try visitor.visitSingularUInt32Field(value: self.maxlen, fieldNumber: 3)
|
||||
}
|
||||
if self.meshPacketID != 0 {
|
||||
try visitor.visitSingularUInt32Field(value: self.meshPacketID, fieldNumber: 4)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: QueueStatus, rhs: QueueStatus) -> Bool {
|
||||
if lhs.res != rhs.res {return false}
|
||||
if lhs.free != rhs.free {return false}
|
||||
if lhs.maxlen != rhs.maxlen {return false}
|
||||
if lhs.meshPacketID != rhs.meshPacketID {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension FromRadio: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "FromRadio"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
|
|
@ -3258,6 +3354,7 @@ extension FromRadio: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation
|
|||
8: .same(proto: "rebooted"),
|
||||
9: .same(proto: "moduleConfig"),
|
||||
10: .same(proto: "channel"),
|
||||
11: .same(proto: "queueStatus"),
|
||||
]
|
||||
|
||||
fileprivate class _StorageClass {
|
||||
|
|
@ -3397,6 +3494,19 @@ extension FromRadio: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation
|
|||
_storage._payloadVariant = .channel(v)
|
||||
}
|
||||
}()
|
||||
case 11: try {
|
||||
var v: QueueStatus?
|
||||
var hadOneofValue = false
|
||||
if let current = _storage._payloadVariant {
|
||||
hadOneofValue = true
|
||||
if case .queueStatus(let m) = current {v = m}
|
||||
}
|
||||
try decoder.decodeSingularMessageField(value: &v)
|
||||
if let v = v {
|
||||
if hadOneofValue {try decoder.handleConflictingOneOf()}
|
||||
_storage._payloadVariant = .queueStatus(v)
|
||||
}
|
||||
}()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -3449,6 +3559,10 @@ extension FromRadio: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation
|
|||
guard case .channel(let v)? = _storage._payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 10)
|
||||
}()
|
||||
case .queueStatus?: try {
|
||||
guard case .queueStatus(let v)? = _storage._payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 11)
|
||||
}()
|
||||
case nil: break
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,6 +111,16 @@ struct ModuleConfig {
|
|||
set {payloadVariant = .audio(newValue)}
|
||||
}
|
||||
|
||||
///
|
||||
/// TODO: REPLACE
|
||||
var remoteHardware: ModuleConfig.RemoteHardwareConfig {
|
||||
get {
|
||||
if case .remoteHardware(let v)? = payloadVariant {return v}
|
||||
return ModuleConfig.RemoteHardwareConfig()
|
||||
}
|
||||
set {payloadVariant = .remoteHardware(newValue)}
|
||||
}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
///
|
||||
|
|
@ -140,6 +150,9 @@ struct ModuleConfig {
|
|||
///
|
||||
/// TODO: REPLACE
|
||||
case audio(ModuleConfig.AudioConfig)
|
||||
///
|
||||
/// TODO: REPLACE
|
||||
case remoteHardware(ModuleConfig.RemoteHardwareConfig)
|
||||
|
||||
#if !swift(>=4.1)
|
||||
static func ==(lhs: ModuleConfig.OneOf_PayloadVariant, rhs: ModuleConfig.OneOf_PayloadVariant) -> Bool {
|
||||
|
|
@ -179,6 +192,10 @@ struct ModuleConfig {
|
|||
guard case .audio(let l) = lhs, case .audio(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
case (.remoteHardware, .remoteHardware): return {
|
||||
guard case .remoteHardware(let l) = lhs, case .remoteHardware(let r) = rhs else { preconditionFailure() }
|
||||
return l == r
|
||||
}()
|
||||
default: return false
|
||||
}
|
||||
}
|
||||
|
|
@ -230,6 +247,22 @@ struct ModuleConfig {
|
|||
init() {}
|
||||
}
|
||||
|
||||
///
|
||||
/// RemoteHardwareModule Config
|
||||
struct RemoteHardwareConfig {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
///
|
||||
/// Whether the Module is enabled
|
||||
var enabled: Bool = false
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
}
|
||||
|
||||
///
|
||||
/// Audio Config for codec2 voice
|
||||
struct AudioConfig {
|
||||
|
|
@ -844,6 +877,7 @@ extension ModuleConfig.CannedMessageConfig.InputEventChar: CaseIterable {
|
|||
extension ModuleConfig: @unchecked Sendable {}
|
||||
extension ModuleConfig.OneOf_PayloadVariant: @unchecked Sendable {}
|
||||
extension ModuleConfig.MQTTConfig: @unchecked Sendable {}
|
||||
extension ModuleConfig.RemoteHardwareConfig: @unchecked Sendable {}
|
||||
extension ModuleConfig.AudioConfig: @unchecked Sendable {}
|
||||
extension ModuleConfig.AudioConfig.Audio_Baud: @unchecked Sendable {}
|
||||
extension ModuleConfig.SerialConfig: @unchecked Sendable {}
|
||||
|
|
@ -870,6 +904,7 @@ extension ModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
6: .same(proto: "telemetry"),
|
||||
7: .standard(proto: "canned_message"),
|
||||
8: .same(proto: "audio"),
|
||||
9: .standard(proto: "remote_hardware"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
|
|
@ -982,6 +1017,19 @@ extension ModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
self.payloadVariant = .audio(v)
|
||||
}
|
||||
}()
|
||||
case 9: try {
|
||||
var v: ModuleConfig.RemoteHardwareConfig?
|
||||
var hadOneofValue = false
|
||||
if let current = self.payloadVariant {
|
||||
hadOneofValue = true
|
||||
if case .remoteHardware(let m) = current {v = m}
|
||||
}
|
||||
try decoder.decodeSingularMessageField(value: &v)
|
||||
if let v = v {
|
||||
if hadOneofValue {try decoder.handleConflictingOneOf()}
|
||||
self.payloadVariant = .remoteHardware(v)
|
||||
}
|
||||
}()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -1025,6 +1073,10 @@ extension ModuleConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat
|
|||
guard case .audio(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
|
||||
}()
|
||||
case .remoteHardware?: try {
|
||||
guard case .remoteHardware(let v)? = self.payloadVariant else { preconditionFailure() }
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
|
||||
}()
|
||||
case nil: break
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
|
|
@ -1099,6 +1151,38 @@ extension ModuleConfig.MQTTConfig: SwiftProtobuf.Message, SwiftProtobuf._Message
|
|||
}
|
||||
}
|
||||
|
||||
extension ModuleConfig.RemoteHardwareConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = ModuleConfig.protoMessageName + ".RemoteHardwareConfig"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "enabled"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
// The use of inline closures is to circumvent an issue where the compiler
|
||||
// allocates stack space for every case branch when no optimizations are
|
||||
// enabled. https://github.com/apple/swift-protobuf/issues/1034
|
||||
switch fieldNumber {
|
||||
case 1: try { try decoder.decodeSingularBoolField(value: &self.enabled) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if self.enabled != false {
|
||||
try visitor.visitSingularBoolField(value: self.enabled, fieldNumber: 1)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: ModuleConfig.RemoteHardwareConfig, rhs: ModuleConfig.RemoteHardwareConfig) -> Bool {
|
||||
if lhs.enabled != rhs.enabled {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension ModuleConfig.AudioConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = ModuleConfig.protoMessageName + ".AudioConfig"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@ struct BluetoothConfig: View {
|
|||
TextField("bluetooth.mode.fixedpin", text: $fixedPin)
|
||||
.foregroundColor(.gray)
|
||||
.onChange(of: fixedPin, perform: { value in
|
||||
// Don't let the first character be 0 because it will get stripped when saving a UInt32
|
||||
if fixedPin.first == "0" {
|
||||
fixedPin = fixedPin.replacing("0", with: "")
|
||||
}
|
||||
//Require that pin is no more than 6 numbers and no less than 6 numbers
|
||||
if fixedPin.utf8.count == pinLength {
|
||||
shortPin = false
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ struct NetworkConfig: View {
|
|||
network.wifiSsid = self.wifiSsid
|
||||
network.wifiPsk = self.wifiPsk
|
||||
network.ethEnabled = self.ethEnabled
|
||||
network.ethMode = Config.NetworkConfig.EthMode.dhcp
|
||||
//network.addressMode = Config.NetworkConfig.AddressMode.dhcp
|
||||
|
||||
let adminMessageId = bleManager.saveWiFiConfig(config: network, fromUser: node!.user!, toUser: node!.user!)
|
||||
if adminMessageId > 0 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue